首页 > 代码库 > Android对话框里面的输入值获取不到,空指针异常
Android对话框里面的输入值获取不到,空指针异常
写的一个Android对话框,点击按钮获取EditText里面的值,这里一直报空指针异常,研究了很长时间终于解决了。
异常如下:
我原来的代码:
//更新对话框 private void updateDialog(final String id){ TableLayout updatemsg = (TableLayout)getLayoutInflater().inflate(R.layout.updatemsg, null); new AlertDialog.Builder(this) .setTitle("更新该条信息") .setView(updatemsg) .setPositiveButton("更新",new OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub String musicN = ((EditText)findViewById(R.id.musicN)).getText().toString(); String singerN = ((EditText)findViewById(R.id.singerN)).getText().toString(); updateData(db,id,musicN,singerN); } }) .setNegativeButton("取消", new OnClickListener(){ public void onClick(DialogInterface dialog,int which){ } }) .create() .show(); }
对话框中引入了另一个xml配置文件updatemsg.xml:
<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TableRow> <TextView android:layout_width="100dip" android:layout_height="wrap_content" android:text="音乐名" android:textSize="30px" android:textColor="#ffffff" /> <EditText android:id="@+id/musicN" android:layout_width="100dip" android:layout_height="wrap_content" /> </TableRow> <TableRow> <TextView android:layout_width="100dip" android:layout_height="wrap_content" android:text="歌手" android:textSize="30px" android:textColor="#ffffff" /> <EditText android:id="@+id/singerN" android:layout_width="100dip" android:layout_height="wrap_content" /> </TableRow></TableLayout>,
问题解决
出错原因就是这个引入的xml
在通过findViewById找EditText的时候,它是从原来的布局文件里面找的,而不是对话框的布局文件,所以当然要报空指针异常
怎样让才能找到对话框的布局文件呢?
把那两句改成;
String musicN = ((EditText)updatemsg.findViewById(R.id.musicN)).getText().toString();
String singerN = ((EditText)updatemsg.findViewById(R.id.singerN)).getText().toString();
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。