作者liu2007 (薯)
看板java
標題Re: [問題] Android Bundle的putIntArray()問題
時間Mon Sep 6 22:23:41 2010
※ 引述《cooper6334 (小恐龍)》之銘言:
連推的限制時間有點長.....
: 最近在寫Android的程式,要聯絡AppWidget和Active
: 我用Intent夾Bundle來傳參數,假如是夾int的話一切ok
: 可是我想夾int陣列,傳到Active那邊都抓不到東西
: 程式碼片段如下
: AppWidget的部份:
: //設定要夾的int陣列
: int[] status = new int[4];
: for (int i = 0; i < 4; i++) {
: status[i] = i;
: }
: Intent configIntent = new Intent(context, PActive.class);
: //設定bundle和夾int陣列
: Bundle bundle;
: bundle = new Bundle();
: bundle.putIntArray("status", status);
: //將bundle夾進intent中
: configIntent.putExtras(bundle);
: //將intent夾進PendingIntent中
: PendingIntent configPendingIntent= PendingIntent.getActivity(context, 0,
: configIntent, PendingIntent.FLAG_UPDATE_CURRENT);
: Active的部份:
: //從intent中取得int陣列
: int[] status=this.getIntent().getExtras().getIntArray("status");
: text1.setText(status[0]);
: 這樣一點Button開啟Active,模擬器馬上就跳Sorry出來
Sorry 是什麼意思??
例外強制停止嗎??
: 要是印出的部份改成text1.setText(status);印出來就是null
: 我覺得可能跟Privacy leak有關,或是int[]那邊沒new好,可是沒辦法解決
: 請問是那邊出了問題?還是我誤會了getIntArray()的用法?
以下的猜測是以你的text1 為 TextView物件來說明
TextView 的 setText() with one parameter 的方法有兩種
1. void setText(CharSequence text)
2. void setText(int resid)
我想你應該是用了第二種
text1.setText(status[0]);
於是程式就到R.id去找
找來找去卻沒有發現 數值為 0x00000000 的東西
於是產生錯誤
--
→ w854105:找洪金寶來演白老大好了XD 甄:我在年輕的時候,跟白老大 09/02 19:35
→ w854105:曾有另一段奇緣,這個我都記載在《葉問2》中,由於跟這個 09/02 19:36
→ w854105:故事無關,因此先表過不提 09/02 19:36
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.61.232