/* 更行试图显示 */
public void UpdataAdapter()
{
// 获取数据库Phones的Cursor
Cursor cur = m_MyDataBaseAdapter.fetchAllData();
miCount=0;
List> data = new ArrayList>();
Map item;
int i=0;
if (cur.moveToFirst())
{
do
{
item = new HashMap();
item.put("time","剩余"+cur.getString(1)+"小时"+cur.getString(2)+"分钟");
item.put("message",cur.getString(3)+"--id:"+cur.getString(0));
data.add(item);
miCount++;
} while (cur.moveToNext());
}
if (cur != null && cur.getCount() >= 0)
{
// SimpleAdapter是ListView和ArrayList的桥梁,构造listview对象
SimpleAdapter adapter = new SimpleAdapter(this,
data,
android.R.layout.simple_list_item_2,
new String[]{"time","message"},
// 与NAME和NUMBER对应的Views
new int[] { android.R.id.text1, android.R.id.text2 });
/* 将adapter添加到m_ListView中 */
m_ListView.setAdapter(adapter);
// m_ListView.setTag(cur.getString(0));
}
}
问题补充:
sunheavenvan 写道
我的解决办法有3个,其中一个有条件
先说第一个有条件的:
既然是通过匹配的方式直接显示的话,可以通过第几行来获取ID,条件是没有筛选等功能改变项内容;
第二个方法:
把ID放到要显示的内容中,需要时,通过字符串分离来使用;
第三个方法,比较麻烦:
重写Adapter,不使用自动匹配,这样即使多项的数据也可以选择性显示,这样ID就可以存在于列表中却不显示。
我的这是:比如 listview 有 6行,每行的position 都与 rowID对应。如果我删除了低2行,现在3.4.5.6.,行的position都减一了,这样我下次删除第3行时(他实际position是四,而对应的数据库rowID也是4),我不知道它对应的rowID了,因为我要一直删和添加。。我想知道显示时为每行绑定上rowID,方便我删除
请问第三种方法。。怎么设置id 却不显示? 菜鸟。。我是