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();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值