看板 AndroidDev 關於我們 聯絡資訊
各位版友好 有問題想請版友們幫忙解惑一下 我近日才開始學android 最近再學用BaseAdapter 我用ListView+BaseAdapter BaseAdapter裡有幾個元件 其中有一個Button Button要做的動作只能在BaseAdapter的code裡面寫 我現在想讓我的程式 在按下list上的button後 可以開啟一個activity 所以我在button的動作裡面寫了以下代碼 Intent intent = new Intent(); intent.setClass(context, Detail_button.class); startActivity(intent); 結果發現 在BaseAdapter內部不能使用startActivity() 不知道各位版友可不可以給我點Hint 讓我解決這個問題 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.156.74
tetragramm:在constructor中把activity傳到BaseAdapter內 09/29 16:53
不太懂 是在建構子中多一個android.app.Activity的欄位嗎? 如下: public MyAdapter(Context c, List<String> ShopName, List<String> ShopAddr, List<String> ShopPhone, android.app.Activity PASS){ .... } 然後再ListActivity那宣告 android.app.Activity PASS = new android.app.Activity(); 再將PASS送到Adapter嗎? setListAdapter(new MyAdapter(myActive,ShopName,ShopAddr,ShopPhone, PASS)); ※ 編輯: xling5216 來自: 140.115.156.74 (09/29 18:21)
asilzheng:如果Adapter是inner class 可用 MyActivity.this 取得 09/29 20:28
asilzheng:Activiy 實體,再呼叫 startActivity(); 09/29 20:28
MosilW:直接用一個 Context 的全域變數接下來進去就可以了 09/29 21:33
xling5216:謝謝大家:) 我已經解決囉~ 09/30 19:53