Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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
Java 在EditText中键入时执行某些操作_Java_Android - Fatal编程技术网

Java 在EditText中键入时执行某些操作

Java 在EditText中键入时执行某些操作,java,android,Java,Android,在我的应用程序中,我试图检查ArrayList是否包含每次有人键入时在EditText中键入的内容。 以下是我尝试的地方: public boolean onKey(View view, int i, KeyEvent keyEvent) { switch (view.getId()){ case R.id.etssid: if(wifiSSID.contains(etSSID.getText())){

在我的应用程序中,我试图检查ArrayList是否包含每次有人键入时在EditText中键入的内容。 以下是我尝试的地方:

 public boolean onKey(View view, int i, KeyEvent keyEvent) {
        switch (view.getId()){
            case R.id.etssid:
            if(wifiSSID.contains(etSSID.getText())){
                etPASS.setText(wifiSSID.indexOf(etSSID.getText()));
        }

        }
        return false;
    }
问题是它永远不会进入if内部。如果我删除了该选项,如果该选项有效:

 switch (view.getId()){
            case R.id.etssid:
            etPASS.setText("It Works"); 
        }
现在,我已使.contains变为哑巴。我在类的顶部创建了一个ArrayList,并添加了一个元素。不会有干扰,也不会起作用。每次有人键入字母时,如何检查文本是否等于arraylist中的某个内容?

使用textwacher方法

addTextChangedListener(新的TextWatcher(){


此textwatcher方法在您每次按任意键时都会被调用。,,ontextchanged方法在每次调用时都会被调用,您可以检查其中的任何条件。有关textwatcher的更多信息,请参阅教程。我认为这里的contains不起作用

相反,您必须使用wifiSSID.contentequals或wifiSSID.equals

您可能还需要更改此if循环条件
etSSID.getText().tostring()

你不能只检查EditText何时不再等于null吗?(etSSID!=null)不,因为我需要它中的确切文本来查看它是否在数组中,但一旦你知道它不是null,你就可以执行etSSID.getText()?
                public void beforeTextChanged(CharSequence s, int start, int count, int after)
                {

                }

                public void onTextChanged(CharSequence s, int start, int before, int count)
                {
                   // Dome something here
                   if(wifiSSID.contains(etSSID.getText())){
                   etPASS.setText(wifiSSID.indexOf(etSSID.getText()));

                }

                public void afterTextChanged(Editable s)
                {

                }
        });