我正在尝试从AlertDialog中的EditTexts中获取文本,这可以在下面看到创建.问题是,我无法检索textvIEws.我得到的只是一个空值.有任何想法吗?
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.
总结以上是内存溢出为你收集整理的android – 来自AlertDialog的findViewById(带自定义布局) – NullPointerException全部内容,希望文章能够帮你解决android – 来自AlertDialog的findViewById(带自定义布局) – NullPointerException所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)