我創建了一個DialogFragment。 對話框有一個EditText,我從對話框xml調用它。 但有錯誤:嘗試上的空對象引用調用虛擬方法android.text.Editable android.widget.EditText.getText()'嘗試調用空對象引用錯誤上的虛擬方法'android.text.Editable android.widget.EditText.getText()'
在這個新的代碼:
AlertDialog alertDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
和
final EditText editText = (EditText) alertDialog.findViewById(R.id.editTextPasswordDeveloper);
我的代碼:
public class DeveloperLoginDialogFragment extends DialogFragment {
EditText editText;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final LayoutInflater inflaterDialog = getActivity().getLayoutInflater();
AlertDialog alertDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
alertDialog = builder.create();
// final AlertDialog alertDialog = new AlertDialog.Builder(getActivity());
builder.setCancelable(false);
builder.setView(inflaterDialog.inflate(R.layout.alertdialog_developer, null));
final EditText editText = (EditText) alertDialog.findViewById(R.id.editTextPasswordDeveloper);
builder.setTitle("Entwickler-Login");
builder.setMessage("Um dich als Entwickler zu verifizieren, gib den Entwickler-Code bitte unten ein.");
builder.setPositiveButton("Verifizieren", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(editText.getText().toString().equals("7846")) {
dialog.dismiss();
Toast.makeText(getActivity().getApplicationContext(),"Erfolgreich verifiziert!", Toast.LENGTH_LONG).show();
}
}
});
builder.setNegativeButton("Abbrechen", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent);
}
});
return builder.create();
}
}
在爲對象分配任何值之前,您正在對對象調用findViewById。也許你想將'inflaterDialog.inflate'的值賦給View變量,然後執行'view.findViewById' – Sourabh