我有一个简单的问题。
我在主要活动中声明了文本视图,并从 XML ( findViewById
) 创建了它。我想将此值传递给广播接收器的子类。以下是我的广播构造函数:
public Broadcast(TextView text_dBm) {
this.text_dBm = text_dBm;
}
在我的主要活动中,我创建了一个新的广播对象并在其中传递了我的 textview 值,如下所示:
new Broadcast(text_dBm);
但我的text_dBm
. 无论如何(除了静态方法)在活动和广播接收器之间传递值吗?
哦,是的。我的广播接收器以编程方式注册(在服务中),并且运行良好。
感谢您的时间!
PS:我已经在 SO 中检查了一些线程,但我没有找到答案:
如何从广播接收器中的活动传递值?
主要活动类:
public class MainActivity extends Activity {
TextView text_dBm, text_time, text_rssi;
Intent startServiceFromActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text_dBm = (TextView) findViewById(R.id.textView_dBm);
new Broadcast(text_dBm);
startServiceFromActivity = new Intent(this, WifiService.class);
startService(startServiceFromActivity);
}
}
广播接收器类:
public class Broadcast extends BroadcastReceiver {
WifiInfo wifiInfo;
WifiManager wifiManager_service;
TextView text_dBm;
public Broadcast(WifiManager wifiManager_service) {
this.wifiManager_service = wifiManager_service;
}
public Broadcast(TextView text_dBm) {
this.text_dBm = text_dBm;
}
@Override
public void onReceive(Context context, Intent intent) {
Log.d("RECEIVER", "Receiver running"); // LOG
text_dBm.setText("textview"); // nullpointerexception
}
}