• 1.摘要
  • 2.基本内容

Android ListView

在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。

基本内容

  1. 1.

    packagecom.ray.test;

  2. 2.

    importjava.util.ArrayList;

  3. 3.

    importjava.util.HashMap;

  4. 4.

    importandroid.app.Activity;

  5. 5.

    importandroid.os.Bundle;

  6. 6.

    importandroid.view.ContextMenu;

  7. 7.

    importandroid.view.MenuItem;

  8. 8.

    importandroid.view.View;

  9. 9.

    importandroid.view.ContextMenu.ContextMenuInfo;

  10. 10.

    importandroid.view.View.OnCreateContextMenuListener;

  11. 11.

    importandroid.widget.AdapterView;

  12. 12.

    importandroid.widget.ListView;

  13. 13.

    importandroid.widget.SimpleAdapter;

  14. 14.

    importandroid.widget.AdapterView.OnItemClickListener;

  15. 15.

    publicclassTestListViewextendsActivity{

  16. 16.

    @Override

  17. 17.

    publicvoidonCreate(BundlesavedInstanceState){

  18. 18.

    super.onCreate(savedInstanceState);

  19. 19.

    setContentView(R.layout.main);

  20. 20.

    //绑定Layout里面的ListView

  21. 21.

    ListViewlist=(ListView)findViewById(R.id.ListView01);

  22. 22.

    //生成动态数组,加入数据

  23. 23.

    ArrayList<HashMap<String,Object>>listItem=newArrayList<HashMap<String,Object>>();

  24. 24.

    for(inti=0;i<10;i++)

  25. 25.

    {

  26. 26.

    HashMap<String,Object>map=newHashMap<String,Object>();

  27. 27.

    map.put("ItemImage",R.drawable.checked);//图像资源的ID

  28. 28.

    map.put("ItemTitle","Level"+i);

  29. 29.

    map.put("ItemText","Finishedin1Min54Secs,70Moves!");

  30. 30.

    listItem.add(map);

  31. 31.

    }

  32. 32.

    //生成适配器的Item和动态数组对应的元素

  33. 33.

    SimpleAdapterlistItemAdapter=newSimpleAdapter(this,listItem,//数据源

  34. 34.

    R.layout.list_items,//ListItem的XML实现

  35. 35.

    //动态数组与ImageItem对应的子项

  36. 36.

    newString[]{"ItemImage","ItemTitle","ItemText"},

  37. 37.

    //ImageItem的XML文件里面的一个ImageView,两个TextViewID

  38. 38.

    newint[]{R.id.ItemImage,R.id.ItemTitle,R.id.ItemText}

  39. 39.

    );

  40. 40.

    //添加并且显示

  41. 41.

    list.setAdapter(listItemAdapter);

  42. 42.

    //添加点击

  43. 43.

    list.setOnItemClickListener(newOnItemClickListener(){

  44. 44.

    @Override

  45. 45.

    publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,

  46. 46.

    longarg3){

  47. 47.

    setTitle("点击第"+arg2+"个项目");

  48. 48.

    }

  49. 49.

    });

  50. 50.

    //添加长按点击

  51. 51.

    list.setOnCreateContextMenuListener(newOnCreateContextMenuListener(){

  52. 52.

    @Override

  53. 53.

    publicvoidonCreateContextMenu(ContextMenumenu,Viewv,ContextMenuInfomenuInfo){

  54. 54.

    menu.setHeaderTitle("长按菜单-ContextMenu");

  55. 55.

    menu.add(0,0,0,"弹出长按菜单0");

  56. 56.

    menu.add(0,1,0,"弹出长按菜单1");

  57. 57.

    }

  58. 58.

    });

  59. 59.

    }

  60. 60.

    //长按菜单响应函数

  61. 61.

    @Override

  62. 62.

    publicbooleanonContextItemSelected(MenuItemitem){

  63. 63.

    setTitle("点击了长按菜单里面的第"+item.getItemId()+"个项目");

  64. 64.

    returnsuper.onContextItemSelected(item);

  65. 65.

    }

  66. 66.

    }