【问题标题】:java.lang.NullPointerException when trying to disable other buttons when one is selectedjava.lang.NullPointerException 在选择一个按钮时尝试禁用其他按钮
【发布时间】:2015-04-21 13:10:33
【问题描述】:

我的代码有问题。我试图在选择一个按钮时禁用所有其他按钮。还有其他选项可以禁用其他按钮吗?

我希望它同时只突出显示一个按钮。

    public void onClick(View v) {
        if (flaga == 0) {
            switch (v.getId()) {
                case R.id.vga1:
                    try {
                        buttonVmute.setEnabled(true);
                        buttonStart.setEnabled(false);
                        ClientThread clientThread = new ClientThread("192.168.1.123");
                        new Thread(clientThread).start();
                        Thread.sleep(20);
                        PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(soket.getOutputStream())), true);
                        Thread.sleep(10);
                        out.println("");
                        Thread.sleep(10);
                        out.println("bbbb");
                        Thread.interrupted();

                    } catch (UnknownHostException | NullPointerException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    break;
                case R.id.hdmi1:
                    try {
                        buttonVmute.setEnabled(false);
                        buttonStart.setEnabled(true);
                        ClientThread clientThread = new ClientThread("192.168.1.124");
                        new Thread(clientThread).start();
                        Thread.sleep(10);
                        PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(soket.getOutputStream())), true);
                        Thread.sleep(10);
                        out.println("");
                        Thread.sleep(10);
                        out.println("nnnnnn");
                        Thread.interrupted();

                    } catch (UnknownHostException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    break;
            }
        } else {
            Toast.makeText(getApplicationContext(), "Podłącz wifi", Toast.LENGTH_LONG).show();
        }
    }

有一个logcat:

04-21 14:36:37.038  20086-20086/com.example.mateusz.tabfragment W/System.err﹕ java.lang.NullPointerException

感谢您的回复。

【问题讨论】:

  • 你能发布整个堆栈跟踪吗?只有一行没有太大帮助。
  • 理想情况下,将源代码整理得更紧凑一些——到处都是多个换行符真的没有帮助。 (您的异常处理策略也需要大量工作......)
  • 我有一种奇怪的感觉,你正在让 UI 线程进入睡眠状态,甚至中断它。 O_O

标签: java android android-button


【解决方案1】:

你能发布所有的鳕鱼吗?我认为问题在于buttonVmute and buttonStart,它们可能没有标识您的布局按钮的价值。

尝试在 Try{} 中创建此变量和 findView 元素的新实例。

try{    
buttonVmute = (ImageButton) v.findViewById(R.id.button_name);
buttonVmute.setEnabled(true);
}

然后看看它是否在同一行崩溃,或者你的问题已经解决了。

【讨论】:

    猜你喜欢
    • 2015-02-27
    • 2012-06-02
    • 2021-08-23
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多