我想在broacast接收器类中使用文本视图集文本方法,但它不是从主活动初始化文本视图对象。
主要活动
public class MainActivity extends AppCompatActivity {
TextView t1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1=(TextView)findViewById(R.id.textView);
}}
我希望在textview中设置通过广播意图接收的数据的广播接收器。吐司工作正常
public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
String action=intent.getAction();
String data=intent.getExtras().getString("msg");
Toast.makeText(context,"Detected: "+action +": "+data,Toast.LENGTH_SHORT).show();
}}
答案 0 :(得分:1)
制作MyAceiver的MainActivity内部类,在那里你可以更新你的TextView。在onStart中注册,并在onStop中取消注册。
答案 1 :(得分:0)
您需要在UI thread
上运行代码,才能从view
对receiver
进行任何类型的更新!使用这个
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText("Your Text");
}
});