2
我正在使用我的應用程序中的藍牙服務,使我能夠從其他設備接收消息。在我的FragmentActivity,我使用一個處理程序來得到這個消息:將數據從片段活動傳輸到片段
FragmentActivity:
public final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
//my code
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
byte[] alpha = null;
alpha=readBuf;
if(alpha!=null){
//my code..
}
}
}
從該處理程序,我想獲得的數據並將其傳送到一個片段。 我試圖用包,但它不工作..
我嘗試代碼:
在FragmentActivity:
Intent intent = new Intent();
intent.setClass(getApplicationContext(), General.class);
Bundle bundle=new Bundle();
bundle.putInt("battery", bat);
intent.putExtra("android.intent.extra.INTENT", bundle);
在片段:
Bundle bundle = getActivity().getIntent().getExtras();
if (bundle != null) {
int mLabel = bundle.getInt("battery", 0);
Toast.makeText(getActivity(), "tottiti: "+mLabel, Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getActivity(), "prout", Toast.LENGTH_SHORT).show();
}
的應用程序是返回「prout」這意味着它不能從我的FragmentActivity獲取我的數據。
是否有任何其他方式從fragmentActivity獲取數據並將其傳輸到片段?
謝謝您的幫助
事實上,爲了讓我的電池數據,我必須使用我的選項菜單中的按鈕(這是在我的FragmentActivity),它獲得連接設備的電池狀態。然後在我的片段中,我有一個按鈕,當我點擊這個按鈕時,我想讓我的程序獲得我在fragmentActivity中獲得的電池狀態值。我嘗試了一些更改後的代碼,但它不起作用。 – Mirelvi
我不能使用ft.add(R.id.fragment_container,fragment);因爲我沒有爲我的片段定義一個ID。我無法在創建時獲取數據,因爲我需要使用我的按鈕來獲取此數據.. – Mirelvi
哼..嘗試將電池數據存儲在活動中。在你的'FragmentActivity'中有一個字段,當點擊選項菜單時,將在那裏存儲數據。然後當點擊'Fragment'中的按鈕時,讀取該字段:'((MyActivity)getActivity())。getBatteryData()' –