Re: [問題] SimpleListAdapter中的itemid與positio …
我自問自答一下
這邊是上次問的問題
※ 引述《alderis (alderis)》之銘言:
: 我在ListActivity中使用SimpleListAdapter
: ListActivity中有
: onListItemClick(ListView l, View v, int position, long id)
: 可以直接使用
: 但我比較不明白其中的參數positon與id有什麼差別
: 我試過position是從0開始
: id是從1開始
: 而id似乎是從設定的Adapter那邊過來的
: 因為設好的adapter中有getItemId這個method
: 但我還是不太明白當初id是怎麼來的
: 如果是自動產生的話,那id跟position的用途有什麼不一樣呢?
: 謝謝
這邊所得到的id並不是從1開始的連續數列
而是塞入adapter的cursor中的SQL中之真實id
我作了個實驗,把SQL中的id不從1開始,而使用時間亂碼
在onListItemClick中的id參數會給出我選的那個Item的真實id
所以問題來了,為什麼SimpleCursorAdapter會知道item在sql中的id是多少呢?
我仔細觀察才發現,原來我之前使用時
剛好都有把SQL table中的_id項目放入cursor中
後來有一次沒有把_id這個項目放入時,就出現錯誤了
並在把cursor塞入SimpleCursorAdapter時被告知cursor中沒有_id這個項目
所以_id這個項目是塞入SimpleCursorAdapter中的cursor的必備項目
因而會給出真實的id值
以上,我是做實驗+推論出來的結果
並沒有查證SimpleCursorAdapter的原始碼
如有錯誤請告知糾正
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.210.26
推
09/16 12:02, , 1F
09/16 12:02, 1F
→
09/16 12:02, , 2F
09/16 12:02, 2F
→
09/17 11:06, , 3F
09/17 11:06, 3F
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章