0
收到以下錯誤消息的Android>傳遞活動的參照BroadcastReceiver的子類
The method findViewById is undefined for the type new PhoneStateListener()
所以我的問題是什麼是傳遞一個活動的引用一個BroadcastReceiver子類的正確方法是什麼?
我BroadcastReceiver的子類是低於
package com.example.android;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.EditText;
public class ServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
Log.d("foo","incomingNumber : "+incomingNumber);
EditText incomingNum = (EditText) findViewById(R.id.inputText);
incomingNum.setText(incomingNumber);
}
},PhoneStateListener.LISTEN_CALL_STATE);
}
}
謝謝!這會被認爲是「最佳做法」還是一種混合物? BroadcastReceivers不應該正常駐留在它們自己的不同的Class文件中嗎? –
我不認爲這是一個需要在自己的類中定義它。你也可以在你的'BroadcastReceiver'中定義一個接口,並使'Activity'實現它,但我認爲這不是最好的選擇,因爲你將會放棄機制提供的「鬆散」。 – Emmanuel