我在一个对话框中有一个EditText,用户将在其中输入一个新类别。但是,当我尝试访问EditText中的值时 - 我得到nullpointer异常。
执行过程。
有一个类别的微调器 当用户从微调器中选择新的类别时,会向用户显示一个对话框。
对话框的代码如下:
//check if spCategories == new category
if( arg0.getSelectedItem().toString().equals("New Category")) {
//Show dialog box for adding new category
Dialog dialog = new Dialog(AddTransaction.this);
dialog.setContentView(R.layout.newcategory);
dialog.setTitle("New Category");
dialog.setCancelable(true);
dialog.show();
Button btnAddCat = (Button) dialog.findViewById(R.id.btnAddCategory);
final EditText etCategory = (EditText) findViewById(R.id.etNewCategory);
btnAddCat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
**Log.v("EXT", "Category type is : " + etCategory.getText());**
}
}
});
我在粗线
时得到NullPointer异常任何想法。 Dialog的布局在XML文件中定义。
答案 0 :(得分:1)
该行:
final EditText etCategory = (EditText) findViewById(R.id.etNewCategory);
错了,你必须改变它:
final EditText etCategory = (EditText) dialog.findViewById(R.id.etNewCategory);
没有“对话框”。您正在活动布局中搜索该视图而不是对话框。