我肯定在onCreateDialog()中做错了什么 . 监听器正常工作,我能够传递我传入的主机片段字符串,但是,我收到错误,说我的EditTexts为空 . 另外,我对编码很新,所以请原谅这个烂摊子 .
我应该从哪里获取它们的参考?
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setTitle("Add Exercise");
AlertDialog dialog = builder.create();
final EditText name = (EditText) dialog.findViewById(R.id.ex_name);
final EditText sets = (EditText) dialog.findViewById(R.id.ex_sets);
final EditText reps = (EditText) dialog.findViewById(R.id.ex_reps);
final EditText weight = (EditText) dialog.findViewById(R.id.ex_weight);
builder.setView(inflater.inflate(R.layout.dialog_add_exercise, null))
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User clicked Add button
//listener.onDialogPositiveClick(AddExerciseDialogFragment.this);
listener.getName(name.getText().toString().trim());
listener.getName(name.getText().toString().trim());
listener.getSets(Integer.parseInt(sets.getText().toString().trim()));
listener.getReps(Integer.parseInt(reps.getText().toString().trim()));
listener.getWeight(Double.parseDouble(weight.getText().toString().trim()));
dismiss();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
//listener.onDialogNegativeClick(AddExerciseDialogFragment.this);
dismiss();
}
});
//dialog.show();
return builder.create();
}
1 回答
是的,您的EditTexts将始终为null . 那是因为你在不包含它们的视图上使用findViewById . 请注意这一行:
您_66984已经使用了findViewById . 那个_66985错了 .
首先,获取您的视图根布局:
然后,找到你的观点:
最后,在找到所需的所有视图后,使用构建器上的主视图根布局 .