Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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 是否从服务中附加TextView?_Java_Android_Wear Os - Fatal编程技术网

Java 是否从服务中附加TextView?

Java 是否从服务中附加TextView?,java,android,wear-os,Java,Android,Wear Os,我有一个问题,我似乎无法解决。它的背景是,我正在尝试更新Android Wear设备上的视图 我有一个名为MessageListener的可穿戴Listener服务,它有一个onMessageReceived功能,如下所示: public void onMessageReceived(MessageEvent messageEvent) { Log.v("WEAR", "MessageListener Triggered"); MessageObject msg = pro

我有一个问题,我似乎无法解决。它的背景是,我正在尝试更新Android Wear设备上的视图

我有一个名为MessageListener的可穿戴Listener服务,它有一个onMessageReceived功能,如下所示:

public void onMessageReceived(MessageEvent messageEvent) {

    Log.v("WEAR", "MessageListener Triggered");


    MessageObject msg = processMessageEvent(messageEvent);
    // handle only wear messages
    if (msg.getTarget().equals("wear")) {
        Log.v("WEAR:", "COMMAND RECEIVED: " + msg.getCommand());
        Log.v("WEAR:", "TARGET RECEIVED: " + msg.getTarget());
        Log.v("WEAR:", "MESSAGE RECEIVED: " + msg.getMessage());


        if (msg.getCommand().equals("SMS")) {
            Log.v("WEAR:", "SMS COMMAND RAN. " + msg.getMessage());
            // do something
        } else if (msg.getCommand().equals("CODE")) {
            // do something
            Log.v("WEAR:", "CODE RECEIVED:  " + msg.getMessage());

            Main.textCode.setText(msg.getMessage());

        }
    }
}
这段代码在运行到

Main.textCode.setText(msg.getMessage());
当它与NullPointerException一起崩溃时。msg.getMessage在按照代码将消息输出到详细日志时填充

在我的主类中,我将textCode声明为TextView

public static TextView textCode;
然后在onCreate中,我将textCode设置为xml元素:

textCode = (TextView) findViewById(R.id.textCode);
完全错误是:

08-20 13:45:41.689 2248-2262/com.domain.cinesaver E/AndroidRuntime﹕ 致命异常:WearableListenerService 进程:com.domain.cinesaver,PID:2248 java.lang.NullPointerException 位于com.domain.cinesaver.MessageListener.onMessageReceived(MessageListener.java:50) 在com.google.android.gms.wearable.WearableListenerService$a$2.run(未知) (来源) 位于android.os.Handler.handleCallback(Handler.java:733) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:136) 运行(HandlerThread.java:61)


我建议您向活动发送带有一些额外值的新意图,并更改您的UI

对于要在manifest.xml上显示的新活动接收意图,需要有此

<activity android:name=".acitvity"  launchmode="singleTask"/>

您的
文本视图
引用是
静态的
,但不应该是静态的。TextView依赖于活动的生命周期,因此它依赖于活动的状态,这意味着它应该绑定到对象,而不是类本身。

删除
静态
限定符,并实现侦听器接口或类似功能,以便向活动对象通知此消息的接收情况。然后,活动本身将决定在收到此消息时,即当侦听器被触发时要做什么。

id
textCode
在片段中?不,它与扩展活动的主类一起。
MessageListener
class?@Sirlate Main.textCode.setText(msg.getMessage())中的第50行是什么;能否检查
msg.getMessage()
是否返回null?
Intent intent = new Intent(this,acitvity.class);

intent.putExtra("key","value");

getApplicationContext().startActivity(intent);