如何在android中将edittext为空时禁用按钮

时间:2014-11-11 11:31:40

标签: android nullpointerexception dialog

如果我的msgtext(editext)为空,我想禁用发送按钮

我有一个包含edittext和发送按钮的对话框

当对话框打开时

并检查edittext是否为空,然后我的按钮被禁用

这是我的代码

public void openDialog(){


             dialog = new Dialog(CommentsActivity.this);
             dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
             dialog.setContentView(R.layout.dialogcommentlayout);
             dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
             dialog.getWindow().setGravity(Gravity.FILL);
             dialog.setCanceledOnTouchOutside(false);
             msgtext=(EditText)dialog.findViewById(R.id.et_sent_msg);
             msgtext.addTextChangedListener(textWatcher);
             checkFieldsForEmptyValues();
             //buttton for send comment
             send=(Button)dialog.findViewById(R.id.sent_msg);

             send.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) 
                {

                    new sendReply().execute();

                }
            });
            mHlvSimpleList= (ListView) dialog.findViewById(R.id.feedlist);
            mHlvSimpleList.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    // TODO Auto-generated method stub
                    Toast.makeText(CommentsActivity.this, "Listview", Toast.LENGTH_SHORT).show();
                }
            });
            dialog.show();
            //asynktask to show feed comment in dialog

     }
   private  void checkFieldsForEmptyValues(){


         String s1 = msgtext.getText().toString().trim();


         if(s1.equals(""))
         {
             send.setEnabled(false);
         }
     }

我的调试器检查时

if(s1.equals(""))
             {
                 send.setEnabled(false);
             }

给出错误NULLPOINTER Exeption

在 send.setEnabled(假);这条线......

请告诉我我哪里做错了什么?  thanku

1 个答案:

答案 0 :(得分:1)

send内执行Button时,send.setEnabled(false); checkFieldsForEmptyValues()仍然为空。您必须首先初始化它,然后执行该方法,因此它不是null。像这样:

//buttton for send comment
send=(Button)dialog.findViewById(R.id.sent_msg);
checkFieldsForEmptyValues();

这将解决您的NullPointerException问题。