在android中切换布局时出错

时间:2015-05-11 16:05:27

标签: android android-layout

我正在尝试切换布局,但下面的错误不断出现。

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewGroup.setId(int)' on a null object reference

android studio正在抱怨“setContentView(R.layout.activity_main);”

我不确定如何修复此错误。我只是搜索了错误并尝试了几个修复程序,但没有一个用于添加网络的线程。我可能只是错过了一些简单的东西。任何帮助深表感谢。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    new Thread(new Runnable() {
        public void run() {
            try {
                new ChatServer();
            } catch (IOException e) {
                e.printStackTrace();
            }
            setContentView(R.layout.activity_main);
            client = new Client();
            client.start();
            Network.register(client);
            client.addListener(new Listener() {
                public void connected(Connection connection) {
                    Network.RegisterName registerName = new Network.RegisterName();
                    registerName.name = name;
                    client.sendTCP(registerName);
                }

                public void received(Connection connection, Object object) {
                    if (object instanceof Network.ChatMessage) {
                        Network.ChatMessage chatMessage = (Network.ChatMessage) object;
                        System.out.println(chatMessage.text);
                        return;
                    }
                }
            });
            host = client.discoverHosts(54777, 5000);
            while (host == null) {
                host = client.discoverHosts(54777, 5000);
                System.out.println(host);
            }
            if (host.isEmpty()) {
                addmsg("no hosts available");
                System.exit(1);
            }
            final InetAddress address = host.get(0);
            setContentView(R.layout.promptname);
        }
    }).start();




}

1 个答案:

答案 0 :(得分:1)

setContentView(R.layout.activity_main);移到您的匿名内部线程类之外,并摆脱setContentView(R.layout.promptname);您需要在视图之间切换,您应该查看Fragment