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. }

相關詞條

熱門詞條

聯絡我們