Re: [問題] Android Bundle的putIntArray()問題
※ 引述《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 的東西
於是產生錯誤
--
→
09/02 19:35,
09/02 19:35
→
09/02 19:36,
09/02 19:36
→
09/02 19:36,
09/02 19:36
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.61.232
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):