Android AlertDialog中的findViewById(具有自定义布局)-NullPointerException
我试图从AlertDialog中的EditText中获取文本,您可以看到下面创建的对话框。问题是,我无法检索文本视图。我得到的只是一个空值。有什么想法吗Android AlertDialog中的findViewById(具有自定义布局)-NullPointerException,android,Android,我试图从AlertDialog中的EditText中获取文本,您可以看到下面创建的对话框。问题是,我无法检索文本视图。我得到的只是一个空值。有什么想法吗 final EditText editFirstname = (EditText) findViewById(R.id.editFirstname); final EditText editLastname = (EditText) findViewById(R.id.editLastname); bttAddPlay
final EditText editFirstname = (EditText) findViewById(R.id.editFirstname);
final EditText editLastname = (EditText) findViewById(R.id.editLastname);
bttAddPlayer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
builder.setView(layoutInflater.inflate(R.layout.dialog_add_player, null))
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
databaseHelper.addPlayer(editFirstname.getText().toString(),editLastname.getText().toString());
playerAdapter.notifyDataSetChanged();
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
});
}
}您需要在充气视图的内部搜索警报对话框,假设充气视图如下所示:
View view = inflater.inflate(R.layout.dialog_add_player, container);
那么你需要做什么
EditText editFirstName = (EditText) view.findViewById(R.id.editFirstName);
EditText editLastName = (EditText) view.findViewById(R.id.editLastName);
看起来你现在正试图为不存在的东西实例化一个变量,你没有关于
EditText
实际位置的引用,它试图查看当前视图的内部,该视图不包含EditText
我们需要堆栈跟踪。其中一个EditText变量为null。它们都为null。但是为什么呢?我在现场打字。。。