Android ListView
在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。
基本内容
- 1.
packagecom.ray.test;
- 2.
importjava.util.ArrayList;
- 3.
importjava.util.HashMap;
- 4.
importandroid.app.Activity;
- 5.
importandroid.os.Bundle;
- 6.
importandroid.view.ContextMenu;
- 7.
importandroid.view.MenuItem;
- 8.
importandroid.view.View;
- 9.
importandroid.view.ContextMenu.ContextMenuInfo;
- 10.
importandroid.view.View.OnCreateContextMenuListener;
- 11.
importandroid.widget.AdapterView;
- 12.
importandroid.widget.ListView;
- 13.
importandroid.widget.SimpleAdapter;
- 14.
importandroid.widget.AdapterView.OnItemClickListener;
- 15.
publicclassTestListViewextendsActivity{
- 16.
@Override
- 17.
publicvoidonCreate(BundlesavedInstanceState){
- 18.
super.onCreate(savedInstanceState);
- 19.
setContentView(R.layout.main);
- 20.
//绑定Layout里面的ListView
- 21.
ListViewlist=(ListView)findViewById(R.id.ListView01);
- 22.
//生成动态数组,加入数据
- 23.
ArrayList<HashMap<String,Object>>listItem=newArrayList<HashMap<String,Object>>();
- 24.
for(inti=0;i<10;i++)
- 25.
{
- 26.
HashMap<String,Object>map=newHashMap<String,Object>();
- 27.
map.put("ItemImage",R.drawable.checked);//图像资源的ID
- 28.
map.put("ItemTitle","Level"+i);
- 29.
map.put("ItemText","Finishedin1Min54Secs,70Moves!");
- 30.
listItem.add(map);
- 31.
}
- 32.
//生成适配器的Item和动态数组对应的元素
- 33.
SimpleAdapterlistItemAdapter=newSimpleAdapter(this,listItem,//数据源
- 34.
R.layout.list_items,//ListItem的XML实现
- 35.
//动态数组与ImageItem对应的子项
- 36.
newString[]{"ItemImage","ItemTitle","ItemText"},
- 37.
//ImageItem的XML文件里面的一个ImageView,两个TextViewID
- 38.
newint[]{R.id.ItemImage,R.id.ItemTitle,R.id.ItemText}
- 39.
);
- 40.
//添加并且显示
- 41.
list.setAdapter(listItemAdapter);
- 42.
//添加点击
- 43.
list.setOnItemClickListener(newOnItemClickListener(){
- 44.
@Override
- 45.
publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,
- 46.
longarg3){
- 47.
setTitle("点击第"+arg2+"个项目");
- 48.
}
- 49.
});
- 50.
//添加长按点击
- 51.
list.setOnCreateContextMenuListener(newOnCreateContextMenuListener(){
- 52.
@Override
- 53.
publicvoidonCreateContextMenu(ContextMenumenu,Viewv,ContextMenuInfomenuInfo){
- 54.
menu.setHeaderTitle("长按菜单-ContextMenu");
- 55.
menu.add(0,0,0,"弹出长按菜单0");
- 56.
menu.add(0,1,0,"弹出长按菜单1");
- 57.
}
- 58.
});
- 59.
}
- 60.
//长按菜单响应函数
- 61.
@Override
- 62.
publicbooleanonContextItemSelected(MenuItemitem){
- 63.
setTitle("点击了长按菜单里面的第"+item.getItemId()+"个项目");
- 64.
returnsuper.onContextItemSelected(item);
- 65.
}
- 66.
}