addRoom.setOnClickListener(new android.view.View.OnClickListener(){
public void onClick(View v) {
builder = new AlertDialog.Builder(RoomSet.this);
TableLayout addroom = (TableLayout)getLayoutInflater().inflate(R.layout.addroom, null);
builder.setView(addroom);
newRoomET = (EditText)findViewById(R.id.addroom_et);
builder.setPositiveButton("确定"
// 为按钮设置监听器
, new android.content.DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
//此处可执行登录处理
name =  newRoomET.getText().toString();//①处
                                                ...
}
}
}
}
为什么①处会出现空指针异常

解决方案 »

  1.   

    打LOG或者断点调试一下吧,看看newRoomET这个EditText对象获取到没有,同时注意看一下这个对象是否因为内存不够而被回收了。
      

  2.   

    newRoomET = (EditText)findViewById(R.id.addroom_et);
    newRoomET 确定不是NULL?
      

  3.   

    改好了: newRoomET = (EditText)addroom.findViewById(R.id.addroom_et);
    原因我先我大致知道了,但有人能说清楚一下吗
      

  4.   

    你的程序一般是在一个activity。
    所以findViewById() 如果不加前置的addroom话,默认会从activity中的layout中寻找R.id.addroom_et
    , 而你要做的是AlertDialog中contentView的子view。 
    所以他找不到, 返回null
      

  5.   

    activity通过findviewbyid只会找到setContentView指定的layout里面的控件,
    而你R.layout.addroom是inflate的,
    所有要用这个控件就需要通过inflate后生成的view