2014-03-28 42 views
0

我试图从对话框中获取文本,但它不起作用。所有的代码作品除了username = txtDialog.getText().toString();Android对话框EditText不赋值

我得到一个NullPointerException

下面是完整的代码:

btn_next.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      dialog = new Dialog(ResActivity.this); 
      dialog.setContentView(R.layout.custom); 
      dialog.show(); 

      Button declineButton = (Button) dialog.findViewById(R.id.declineButton); 
      declineButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        txtDialog = (EditText)findViewById(R.id.textDialog); 
        username = txtDialog.getText().toString(); 
        Intent intent = new Intent(getApplicationContext(), EndActivity.class); 
        intent.putExtra(MESSAGE_NAME, username); 
        startActivity(intent); 
        dialog.dismiss(); 
       } 
      }); 

     } 
    }); 

有人能帮忙吗?

+0

发布错误日志。 –

+0

edittext在对话框中? –

回答

2

我觉得你EdittextDialog 改变这一行

txtDialog = (EditText)findViewById(R.id.textDialog); 

txtDialog = (EditText)dialog.findViewById(R.id.textDialog); 
+1

是的,这是正确的,谢谢所有 – Yves

+0

@Yves很乐意帮助你.. –

2

试试这个

txtDialog = (EditText)dialog.findViewById(R.id.textDialog); 
+0

@Yves请接受答案,如果它解决了您的问题。 – Nand

0

您的编辑中的文本对话框即使用这样

txtDialog = (EditText)dialog.findViewById(R.id.textDialog); 
0

我觉得你EditText里面的对话框:

然后改变这一报关行

txtDialog = (EditText)findViewById(R.id.textDialog); 

txtDialog = (EditText)dialog.findViewById(R.id.textDialog); 
0

无效connectToHotSpot(){ AlertDialog.Builder alert = new AlertDialog.Builder(this);

 alert.setTitle("Inpaint Server"); 

     alert.setMessage("IP Address"); 

     final EditText input = new EditText(this); 
     alert.setView(input); 


     alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 

      String nickname=input.getText().toString(); 
      if(!nickname.equals("")) 
      { 
       Variables.Serversip=nickname; 
       ipaddress.setText("Server's IP "+nickname); 
       showAlertMessage("Message","Ok.Proceed"); 
      } 
      else 
      { 
       showAlertMessage("Oops","Specify the Server's IP Address"); 
      } 

     } 
     }); 

     alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      Toast.makeText(getApplicationContext(),"Must give me the IP B4 Inpainting",Toast.LENGTH_LONG).show(); 
     } 
     }); 

     alert.show(); 
    }