Android应用按钮未被禁用/无法点击

时间:2015-07-27 12:32:13

标签: java android

该按钮在mainUI线程中定义 以下是导致问题的代码部分 -

        button.setOnClickListener(new OnClickListener() {
        public void onClick(View v){
            new Thread(new Runnable() {

                public void run() {
                    try {
                        OutputStream outToServer = client.getOutputStream();
                        DataOutputStream out = new DataOutputStream(outToServer);
                        out.writeUTF("Hello from " + client.getLocalSocketAddress());
                        final String msg = edi.getText().toString();
                        out.writeUTF("Client: " + msg);

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                tex.append(msg);
                                if (msg == "quit") {
                                    button.setClickable(false);
                                    tex.append("quitbutton");
                                }
                                tex.append("Client: " + msg + "\n");
                                edi.setText("");
                            }
                        });

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }}).start();
        }
    });

这里的其余代码工作得很好。当我发送“quit”作为字符串时,msg变量正确地使用它。问题似乎根本没有进入if块,因为如果它确实存在,它应该在textview中显示“quibutton”文本,而不是。

感谢任何帮助,谢谢:)

编辑 - 我没有意识到我没有以正确的方式比较字符串,而不是我不知道如何。它可能与我头脑中的C ++运算符重载函数混淆了,我想用==直接比较字符串。

1 个答案:

答案 0 :(得分:0)

更改此

if (msg == "quit") {
                    button.setClickable(false);
                    tex.append("quitbutton");
                   }

到这个

if (msg.equals("quit")) {
                    button.setEnabled(false);
                    tex.append("quitbutton");
                   }