AndroidDev 板


LINE

目前聽起來的感覺 我個人是猜測你是用Button/Spinner/其他AdapterView當作切換的開關 然後切換時,換ListView的內容達成的 因為你有提到: 1. 四個ListView是用共用同一個元件 2. 個別ListVeiw給了不同的Listener 可是最後點進去都是執行某固定一個Listener 不管有沒有猜對,都還是建議你用下面幾種方法解決會比較好: A. TabHost或Spinner + Fragment B. ViewPager C. ViewPager + Fragment 難度由簡到難:B, C, A (純屬個人想法) 最後,如果我上面猜測正確的話 那又該如何就現有的基礎去修正(假設客戶就是希望要長這樣) 首先先要了解一件事,雖然宣告了四個ListView變數 實際上四個ListView存的都是同一個View 也就是改了listview1後,2 3 4的內容都會跟著一起動 原因請去Google: java 參考 所以 第一步:其實只要宣告一個ListView變數就好了 第二步:只有一個ListView,那表示Listener也只要一個就好了 第三步:假設你四個Adapter都是用ArrayAdapter<String>,那Listener可以這樣寫: onItemSelected(AdapterView<?> parent, View v, int position, long id) { ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter; String data = adapter.getItem(position); // data即為正確選到的資料 ... } 但實際上該怎麼寫,就要視你的Adapter是怎麼寫來決定了 ※ 引述《asifsea (sea)》之銘言: : layout配置只放一個listview,id為listclinic : java檔裡宣告了四個listview,分別是listview1,2,3,4(如眼科系列診所,小兒科系列診所) : 四個listview共用元件皆為findViewById(R.id.listclinic1) : 但是四個listview裡的內容是不同的。 : 我想要點進每個listview的項目都可以正確顯示其代表的診所簡介 : 如眼科系列診所點進Item甲診所→顯示甲診所簡介 : 現在遇到的問題是,監聽事件要如何知道我指向的是四個中的哪個listview : 1.有試過個別都給一個監聽器,如: : listView1.setOnItemClickListener(Listener1); : listView2.setOnItemClickListener(Listener2); : 但是似乎無效,其不同listview的Item點進去都是顯示連到甲診所資料 這裡可以試看看換執行setOnItemClickListener順序 你會發現不同的ListView的item點進去會變成都是顯示乙(或丙、丁...)診所的資料 那就代表我猜的沒錯了XD : 2.onItemSelected(AdapterView<?> parent, View v, int position, long id) : parent,是用來選擇哪個listview的,但點進去都是顯示連到甲診所資料 : 要如何才能正確點進指定診所,顯示正確的簡介?? -- --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.68.4
※ 文章網址: http://webptt.com/m.aspx?n=bbs/AndroidDev/M.1396633052.A.A8B.html
1F:→ asifsea:謝謝t大的回答十分的清楚!我是用Spinner項目選取來切換。 04/05 11:55
2F:→ asifsea:以為是一個listview裝一個adapter,沒想到都指向同一個 04/05 11:58
3F:→ asifsea:因為樣式是採取simple_list_item_2,一行名稱 一行放地址 04/05 12:07
4F:→ asifsea:是用SimpleAdapter和ArrayList<HashMap<String, String> 04/05 12:10
現在回來看這篇,覺得我打得有點跳痛,沒想到你看得懂XD 其實以目前的結構為基礎的話,解法也蠻多的 就我原本的解法要改成SimpleAdapter的話 那HashMap最好加上跟原始資料相關的Item map.put("data_id", String.valueOf(id)); 只是我不知道SimpleAdapter用getItem會取到什麼 (懶得試了) 所以Listener就跳過 ---------------------------------------------------------- 還有一個更偷吃步的方法 一樣改成一個ListView變數 但Listener設定四個 然後在Spinner裡的OnItemSelectedListener裡去換ListView的Listener: onItemSelected(AdapterView<?> parent, View view, int position, long id) { switch(position) { case 0: listview.setOnItemClickListener(Listener1); break; case 1: listview.setOnItemClickListener(Listener2); break; ... } } 理論上,這樣應該也可以達到你想要的結果 ※ 編輯: tails32100 (59.126.68.4), 04/05/2014 13:10:28
5F:推 asifsea:說來慚愧...採取SimpleAdapter不會運用在Listener裡>< 04/05 20:23
6F:→ asifsea:所以就直接用t大所教的偷吃步法來改,一來是簡單明瞭。 04/05 20:24
7F:→ asifsea:二來其Item所要跳頁顯示的資料龐大,採取四個Listener的話 04/05 20:25
8F:→ asifsea:往後很容易修改資料,甚至是分清為哪個系列的簡介內容。 04/05 20:25
9F:→ asifsea:這listview煩惱我很久了,google查很久都沒相同案例 04/05 20:26
10F:→ asifsea:真的很謝謝t大這麼有耐性的回答,其解法十分易懂,受教了~ 04/05 20:27
11F:→ asifsea:冒昧問一句:請問google map api2在AVD模擬器到底能否呈現? 04/05 20:43
12F:→ tails32100:理論上應該是不行吧...我沒用過AVD開發過Orz... 04/07 00:10
13F:→ asifsea:後來不用內建的AVD 直接魔神模擬器就解決無法顯示問題 04/15 15:05







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP