Java 是否从服务中附加TextView?
我有一个问题,我似乎无法解决。它的背景是,我正在尝试更新Android Wear设备上的视图 我有一个名为MessageListener的可穿戴Listener服务,它有一个onMessageReceived功能,如下所示: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
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依赖于活动的生命周期,因此它依赖于活动的状态,这意味着它应该绑定到对象,而不是类本身。删除
静态
限定符,并实现侦听器接口或类似功能,以便向活动对象通知此消息的接收情况。然后,活动本身将决定在收到此消息时,即当侦听器被触发时要做什么。idtextCode
在片段中?不,它与扩展活动的主类一起。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);