Кнопка не отвечает XML проблема? - PullRequest
0 голосов
/ 19 июня 2020

Я работал вчера, а не сегодня. Есть две кнопки: одна на go назад, одна из которых является кнопкой экстренной помощи, которая вызывает метод открытия номеронабирателя для вызова скорой помощи. Я думаю, это может быть проблема XML, не уверен, что работает нормально, теперь не отвечает, возможно, я изменил что-то, чего мне не следовало делать. Когда он нажимал ранее, он говорил, что метод не может быть найден, что я просто не понимаю, поскольку он находится в правильном файле

ReportActivity. java

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //allows for a smoother transition
        overridePendingTransition(0, 0);
        setContentView(R.layout.activity_report);
        EditText incidentReport = this.findViewById(R.id.Incident_Report);
        incidentReport.setSelection(0);


    try {
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(ReportActivity.this, MainActivity.class);
                startActivity(intent);
            }
        });


    } catch (NullPointerException n) {
        Toast.makeText(this, "Error,", Toast.LENGTH_LONG);
    }

    try {
        emergency.setOnClickListener(new View.OnClickListener() {
            public void onClick(@NonNull View v) {
                Intent call = new Intent(ReportActivity.this, CallActivity.class);
                startActivity(call);

            }
        });
    } catch (NullPointerException n) {
        Toast.makeText(this, "Error,", Toast.LENGTH_LONG);
    }

}

@Override
public void onClick(View v) {

}
private boolean checkPermission(String permission) {
    int permissionCheck = ContextCompat.checkSelfPermission(this, permission);
    return (permissionCheck == PackageManager.PERMISSION_GRANTED);
}

public void call(View view) {
    if (checkPermission("android.permission.CALL_PHONE")) {
        Intent call = new Intent(Intent.ACTION_DIAL);
        String number = "tel:" + getString(R.string.phone_number);
        call.setData(Uri.parse(number));
        startActivity(call);
    }
}
}

activity_report . xml

        android:gravity="start"
        android:hint="@string/Hint"
        android:inputType="text"
        android:textAlignment="textStart"
        android:textCursorDrawable="@drawable/color_cursor"
        app:layout_constraintBottom_toTopOf="@+id/submit_btn"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/submit_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="80dp"
        android:layout_marginLeft="80dp"
        android:layout_marginTop="32dp"
        android:background="@drawable/yes_button"
        android:text="Submit"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/Incident_Report" />

    <Button
        android:id="@+id/back_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="80dp"
        android:layout_marginRight="80dp"
        android:background="@drawable/diagnose_button"
        android:onClick="onClick"
        android:text="Back"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/Incident_Report" />

    <Button
        android:id="@+id/emergency_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="131dp"
        android:layout_marginBottom="106dp"
        android:background="@drawable/no_button"
        android:onClick="call"
        android:text="EMERGENCY"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/submit_btn" />
</androidx.constraintlayout.widget.ConstraintLayout>

1 Ответ

0 голосов
/ 19 июня 2020

Если вы планируете использовать android:onClick="call" в своем xml, тогда у вас также должна быть соответствующая функция с именем call в вашей деятельности, и logi c для выполнения щелчка идет внутри него.

Если вы планируете расширять View.onClickListener, то внутри override void onClick() вы можете иметь оператор переключения идентификаторов ваших кнопок и выполнять свои logi c

в качестве альтернативы вы можете игнорировать первые два и получить идентификатор кнопки и реализовать click logi c внутри onCreate()

...