У меня есть диалог, созданный в файле DialogFragment
. Это прекрасно работает.
Для моего диалога я использую индивидуальный макет. Он содержит две кнопки.
release_scan_dialog.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/code"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Scan 1" />
<Button
android:id="@+id/storageplace"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Scan 2" />
</LinearLayout>
ScanFragment.java
public class ScanFragment extends DialogFragment {
public android.app.Dialog onCreateDialog(android.os.Bundle savedInstanceState) {
AlertDialog dialog = new AlertDialog.Builder(this.getActivity())
.setView(this.getActivity().getLayoutInflater().inflate(R.layout.release_scan_dialog, null))
.setTitle(R.string.title_store)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
}
});
// This will crush with a NullPointerException
dialog.findViewById(R.id.code).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
((AlertDialog) getDialog()).getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
}
});
return dialog;
}
}
Если я попытаюсь определить onClick
для обеих кнопок, произойдет NullPointerException
. Какое правильное событие для реализации onClick
?
Спасибо за любой ответ.
DialogFragment
, а неDialog
. Я создал свой диалог, как пример со страницы разработчика Android developer.android. com/guide/topics/ui/dialogs.html#CustomLayout - person mburm   schedule 24.04.2014