0

nullpointerexception当我getText().toString()从 EditTex执行此操作时,我有此错误:

public class SendMessActivity extends SherlockFragmentActivity  {    
   private  EditText tEmail;
   private  Button sendButton;
 @Override
 protected void onCreate(final Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.send_mess_layout);
   tEmail = (EditText)findViewById(R.id.editEmailTo);
   sendButton = (Button)findViewById(R.id.btn_sendmess);
   endButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           //String textEmail = tEmail.getText().toString(); //nullpointerexception
           Editable textEmail1Editable = tEmail.getText(); //nullpointerexception
           String textEmail = textEmail1Editable.toString()
           Log.d(DEBUGTAG, "SENDING START::::::::  " + textEmail);
         }
    });

}}

请告诉我怎么做

更新问

大卫,谢谢你的猜测,问题出在我纠结的布局中,我有所有 4 层嵌套的线性布局。在我离开简化方案并且我只有2个级别之后,都开始工作了

4

2 回答 2

0

你需要打电话setContentView(your_layout.xml),所以它知道要使用什么布局。findViewById(...)如果不设置布局,所有尝试在布局中查找视图的调用都将返回 null。

public class SendMessActivity extends SherlockFragmentActivity  {     
   private  EditText tEmail;
   private  Button sendButton;
 @Override 
 protected void onCreate(final Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);


   setContentView(your_layout.xml); //set your activity layout here.


   tEmail = (EditText)findViewById(R.id.editEmailTo);
   sendButton = (Button)findViewById(R.id.btn_sendmess);
   endButton.setOnClickListener(new View.OnClickListener() {
        @Override 
        public void onClick(View view) {
           String textEmail = tEmail.getText().toString(); //nullpointerexception
           Log.d(DEBUGTAG, "SENDING START::::::::  " + textEmail);
         } 
    }); 

}} 
于 2013-10-03T20:36:28.860 回答
0

如果您没有分配文本,那么我会假设文本的 EditText 检索将是一个空条目,并且您正在尝试创建该空条目的字符串。

于 2013-10-03T21:34:55.870 回答