ListView显示列表数据分为List<HashMap<String,Object>>方式和Cursor方式。两种方式用的适配器不一样,点击item取会的数据类型也不一样。
1、List<HashMap<String,Object>>方式:
List<News> videos = VideoNewsService.getLastNews();
List<HashMap<String, Object>> data = new ArrayList<HashMap<String,Object>>();
for(News news : videos){
HashMap<String, Object> item = new HashMap<String, Object>();
item.put("id", news.getId());
item.put("title", news.getTitle());
item.put("timelength", getResources().getString(R.string.timelength)
+ news.getTimelength()+ getResources().getString(R.string.min));
data.add(item);
}
SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item,
new String[]{"title", "timelength"}, new int[]{R.id.title, R.id.timelength});
listView.setAdapter(adapter);
listView.setOnItemClickListener(new ItemClickListener() );
点击Item:
class ItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
ListView listView = (ListView) parent;
HashMap<String, Object> data = (HashMap<String, Object>) listView.getItemAtPosition(position);
String personid = data.get("id").toString();
Toast.makeText(getApplicationContext(), personid, 1).show();
}
2.Cursor方式:
PersonService service=new PersonService(getApplicationContext());
Cursor cursor=service.getScorollData(0, 10);
ListView listView = (ListView) this.findViewById(R.id.listView);
SimpleCursorAdapter adapter=new SimpleCursorAdapter(getApplicationContext(), R.layout.item, cursor, new String[] { "name", "age" }, new int[] {
R.id.title, R.id.len });
listView.setAdapter(adapter);
listView.setOnItemClickListener(new ItemClickListener() );
点击Item:
class ItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
ListView listView = (ListView) parent;
Cursor cursor = (Cursor) listView.getItemAtPosition(position);
String name=cursor.getString(cursor.getColumnIndex("name"));
Toast.makeText(getApplicationContext(), name, 1).show();
}
}