0

在我的应用程序中,我试图检查 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 并添加了一个元素。不会有干扰,它不起作用。每次有人键入字母时,我该怎么做才能检查文本是否等于数组列表中的某些内容?

4

2 回答 2

1

我认为 contains 在这里不起作用。

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

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

于 2013-11-10T04:23:55.787 回答
0

使用 textwacher 方法

editext.addTextChangedListener(new TextWatcher() {

                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)
                {

                }
        });

这个 textwatcher 方法每次按下任何键时都会运行。,.,ontextchanged 方法每次都会被调用,您可以检查其中的任何条件。查看教程以了解更多有关 textwatcher 的信息

于 2013-11-10T02:59:35.933 回答