Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果编辑文本发生更改,如何在android中禁用按钮作为响应?_Android_Android Edittext - Fatal编程技术网

如果编辑文本发生更改,如何在android中禁用按钮作为响应?

如果编辑文本发生更改,如何在android中禁用按钮作为响应?,android,android-edittext,Android,Android Edittext,我有一个android应用程序,有3个按钮。第一个按钮始终处于启用状态,但其他按钮处于禁用状态。因此,如果第一个按钮响应正确,那么其他两个按钮将被启用,否则它将保持禁用状态。这很有效 现在,如果第一个按钮的响应正确,但用户再次更改了编辑文本,我需要一种方法使其他两个按钮再次被禁用 这就是我所做的: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); se

我有一个android应用程序,有3个按钮。第一个按钮始终处于启用状态,但其他按钮处于禁用状态。因此,如果第一个按钮响应正确,那么其他两个按钮将被启用,否则它将保持禁用状态。这很有效

现在,如果第一个按钮的响应正确,但用户再次更改了编辑文本,我需要一种方法使其他两个按钮再次被禁用

这就是我所做的:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
     btn1 = (Button)findViewById(R.id.Askbutton);
     btn2 = (Button)findViewById(R.id.Addbutton);
    btn1.setEnabled(false);
    btn2.setEnabled(false);}

public void SearchClickHandler(View view){

DatabaseHandler db = new DatabaseHandler(this );

       if (view.getId() == R.id.Searchbutton) {
         EditText BookN = (EditText)findViewById(R.id.Bookname);
         String Book_n = BookN.getText().toString() ;
        TextView resultT =(TextView)findViewById(R.id.resultLable);
            Books book = db.findbook(Book_n);

                      if(book != null ) {
                btn1.setEnabled(true);
                btn2.setEnabled(true);

                resultT.setText(Book_n + " is avaliable ");

            if(BookN.isInEditMode()) {
        btn1.setEnabled(false);
        btn2.setEnabled(false);
                }

             } else {
                 resultT.setText("We are sorry,  "+ Book_n + "  is not avaliable");
                }
       }
      }

必须使用
addTextChangedListener()
方法

BookN = (EditText)findViewById(R.id.Bookname);
BookN.addTextChangedListener(new TextWatcher(){
    public void afterTextChanged(Editable s) {
        //use s.length() for enable and disable Button
    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after){}
    public void onTextChanged(CharSequence s, int start, int before, int count){}
}); 

试试这个,它可能对你有帮助

BookN.setOnEditorActionListener(new OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
            return false;
            btn1.setEnabled(false);
            btn2.setEnabled(false);
        }
    });

EditText
这是答案。

试试这个

 BookN .addTextChangedListener(new TextWatcher(){
   @Override
   public void onTextChanged(CharSequence s, int start, int before, int count) {   
   }   
   @Override
 public void beforeTextChanged(CharSequence s, int start, int count,
int after) {    
 }
   @Override
     public void afterTextChanged(Editable s) {
     String st=BookN.getText().toString();
       btn1.setEnabled(false);
        btn2.setEnabled(false);
    }
    }
  });

将listner添加到edittext将起作用,根据您对edittext所做的检查类型,您可以选择listner我想检查用户在git后是否有正确的响应以及是否启用了其他2个按钮,以检查他是否为新搜索更改了edittext,其他按钮将在首次启动时禁用。我会试着让听众看看它是否有效。谢谢:)