[英]Is there an alternative in Android Java for Message sendToTarget to access View in inner class of an activity?
我有一个活动,我有一个文本视图。 我也在使用一个有一些事件的 sdk。 在这些事件中,我需要在 TextView 上显示一些数据。 这些事件位于外部 class 中,我通过一些接口获得了它们。 我在 Activity 中实现的接口。 我正在使用 Handler 和 Message 将文本设置到 TextView 内实现接口。 我想知道除了处理程序和消息之外,是否还有另一种方法可以在界面中设置文本。
这是该代码:
public class MyActivity extends AppCompatActivity {
private TextView nameTextView;
// some code
// implementing interfaces of external class
Service.ServiceEvents events = new Service.ServiceEvents() {
@Override
public void onSomeEvent(String name) {
nameTextView.setText(name); // not working
Message m = myHandler.obtainMessage(0, nameTextView);
m.sendToTarget();
}
Handler myHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message message) {
String s = message.obj.toString();
nameTextView.setText(s);
}
};
}
} // end of activity
是否有另一种方法可以在 TextView 中设置文本? 请帮忙。
您可以使用界面来完成。
创建一个新interface
并给它一个你喜欢的名字。(这里是SampleInterface
)。
添加一些 void 方法来喜欢这个
void onSomeEvent(String name);
在 class 中创建它的 object,您可以在其中从 sdk 获取数据,并将此侦听器添加到其构造函数中。 像这样的东西
public YourJavaClassName(SampleInterface sampleInterface) { this.sampleInterface= sampleInterface; }
当您在 sdk 中收到更新时,您可以这样调用它
void onDataReceived(String name){// I don't know how you get the value from the sdk so I wrote this sampleInterface.onSomeEvent(name); }
您已在 sdk 接收器 class 中实现它。 现在您需要添加到主要活动以接收和更新数据。
创建 class 的 object,您可以在其中接收来自 sdk 的数据。像这样
MySDKReceiverClass mysdkreceiverclass; mysdkreceiverclass = new MySDKReceiverClass(this);
在活动中实现接口,在那里你可以得到值,你可以在 textview 中设置它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.