我有一個簡單的問題。NullPointerExceptoin當從活動傳遞價值到廣播接收器
我已經在主要活動中聲明瞭文本視圖,並從XML創建了它(findViewById
)。我想將此值傳遞給廣播接收器的子類。以下是我的廣播構造:
public Broadcast(TextView text_dBm) {
this.text_dBm = text_dBm;
}
在我的主要活動我創建了一個新的廣播對象,並通過在我的價值TextView的,就像這樣:
new Broadcast(text_dBm);
但我仍然獲得空指針異常我的text_dBm
。無論如何(除了靜態方法)在活動和廣播接收器之間傳遞值嗎?
哦,是的。我的廣播接收機以編程方式註冊(服務中),並且它的運行非常完美。
謝謝你的時間!
PS:我已經查了一些線程這裏SO,但我沒有找到答案: How to pass value from an activity in an broadcast receiver?
主要業務類:
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
}
}
發表您的這裏的代碼 – Prachi
我做了,請看看它:) – rootpanthera
你確定你有一個有效的viewId?根據文檔,如果沒有找到視圖,'findViewById(int)'將返回null。 – Alderath