2016-07-23 41 views
2

我是Android的新手。如果充電器插入或拔出,​​我想在活動中更改文本視圖的文本。對於我已經註冊了一個接收器清單與意圖android.intent.action.ACTION_POWER_CONNECTEDandroid.intent.action.ACTION_POWER_DISCONNECTED如何顯示充電器是否插入/拔出活動?

以下爲接收器的代碼:

public class PowerConnectionReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 

    if(intent.getAction() == Intent.ACTION_POWER_CONNECTED) { 
     //Handle power connected 
     Log.e("Charger State","power connected"); 
     Toast.makeText(context, "Charger PluggedIn", Toast.LENGTH_SHORT).show(); 
    } else if(intent.getAction() == Intent.ACTION_POWER_DISCONNECTED){ 
     //Handle power disconnected 
     Log.e("Charger State","power disconnected"); 
     Toast.makeText(context, "Charger PluggedOut", Toast.LENGTH_SHORT).show(); 
    } 

    } 
} 

這是工作完美,但我想說明它的活動,當充電器插入或拔出。請幫我達成任務。

謝謝〜

+0

你有沒有寫清單中的PowerConnectionReceiver –

+0

y es我已經寫了它,它的工作原理是當充電器插入或拔出時我可以看到吐司消息。唯一的是我想在活動上顯示消息MainActivity。 –

+0

你想在活動中顯示textview的連接狀態嗎? – SaravInfern

回答

0

有很多方法從廣播接收器將數據傳遞到活動

最好的辦法是使用總線

compile 'org.greenrobot:eventbus:3.0.0' 

//Some Class 
public class MessageEvent { 
    public final String message; 

public MessageEvent(String message) { 
    this.message = message; 
    } 
} 

//In Activity 
@Override 
    public void onStart() { 
    super.onStart(); 
    EventBus.getDefault().register(this); 
} 

@Override 
public void onStop() { 
EventBus.getDefault().unregister(this); 
super.onStop(); 
} 

//From Broadcast Receiver 
//Add this in the Connected and Disconnected methods 
EventBus.getDefault().post(new MessageEvent("Hello everyone!")); 
+1

更多信息 - http://greenrobot.org/eventbus/documentation/how-to-get-started/ –

+1

無論如何,您必須擁有廣播接收器,那爲什麼它是「最好的方式」? – TDG

+0

感謝ton @VeereshCharantimath它的工作完美,但你錯過了提到這裏的一件事是關於準備訂閱者,否則你的答案幫助我... –

0

只是寫在你所使用的代碼像這樣的活動

public class MyActivity extends Activity{ 

TextView mTextView; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mTextView =(TextView) findViewById(R.id.text); 

} 

public class PowerConnectionReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 

    if(intent.getAction() == Intent.ACTION_POWER_CONNECTED) { 
     //Handle power connected 
     Log.e("Charger State","power connected"); 
     mTextView.setText("Charger PluggedIn"); 
     Toast.makeText(context, "Charger PluggedIn", Toast.LENGTH_SHORT).show(); 
    } else if(intent.getAction() == Intent.ACTION_POWER_DISCONNECTED){ 
     //Handle power disconnected 
     Log.e("Charger State","power disconnected"); 
     mTextView.setText("Charger PluggedOut"); 
     Toast.makeText(context, "Charger PluggedOut", Toast.LENGTH_SHORT).show(); 
    }else{ 
     mTextView.setText(""); 
    } 

    } 
} 
相關問題