本執行個體提供清單控制項ListView初級用法,通過認真閱讀代碼和注釋,是可以在腦海中建立一個清晰的控制項架構
主要為之後製作檔案瀏覽目錄器作鋪墊學習,實現選擇檔案夾進入及檔案選擇功能
//main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"><ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ListView01" android:drawSelectorOnTop="false" /><!-- android:drawSelectorOnTop調整點擊時背景色是否覆蓋文字--></LinearLayout>
//列表子項listview_item.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:paddingBottom="4dip" android:paddingLeft="12dip"android:paddingRight="12dip"><ImageView android:paddingTop="12dip"android:layout_alignParentRight="true"android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ItemImage"/> <TextView android:text="TextView01" android:layout_height="wrap_content" android:textSize="20dip" android:layout_width="fill_parent" android:id="@+id/ItemTitle" android:singleLine="true" /><TextView android:text="TextView02" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_below="@+id/ItemTitle" android:id="@+id/ItemText"/><TextView android:text="TextView03" android:textSize="12dip" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_below="@+id/ItemText" android:id="@+id/ItemSign"/></RelativeLayout>
//主類java
package com.test.file.list;import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.os.Bundle;import android.view.ContextMenu;import android.view.MenuItem;import android.view.View;import android.view.ContextMenu.ContextMenuInfo;import android.view.View.OnCreateContextMenuListener;import android.widget.AdapterView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.AdapterView.OnItemClickListener;public class FILEActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 綁定Layout裡的ListViewListView list = (ListView) findViewById(R.id.ListView01);// 產生動態數組,加入資料ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();for (int i = 0; i < 5; i++) {// HashMap為索引值對類型。第一個參數為鍵,第二個參數為值HashMap<String, Object> map = new HashMap<String, Object>();map.put("ItemImage", R.drawable.icon);// 映像資源圖片,顯示在小項右端map.put("ItemTitle", "Level " + i);map.put("ItemText", "此處可顯示本文或者檔案路徑 ");map.put("ItemSign", "This is bY檔案組 ");listItem.add(map);// 添加到listItem中}// 產生適配器的Item和動態數組對應的元素,這裡用SimpleAdapter作為ListView的資料來源// 如果條目布局比較複雜,可以繼承BaseAdapter來定義自己的資料來源。// 產生一個SimpleAdapter類型的變數來填充資料SimpleAdapter listItemAdapter = new SimpleAdapter(this,// this是當前Activity的對象listItem,// 資料來源 為填充資料後的ArrayList類型的對象 R.layout.listview_item,// 子項的布局.xml檔案名稱new String[] { "ItemImage", "ItemTitle", "ItemText", "ItemSign" },//這個String數組中的元素就是list對象中的列,list中有幾這個數組中就要寫幾列。 new int[] { R.id.ItemImage, R.id.ItemTitle, R.id.ItemText,R.id.ItemSign });//值是對應XML布局檔案中的一個ImageView,三個TextView的id // 添加並顯示list.setAdapter(listItemAdapter);// 添加點擊list.setOnItemClickListener(new OnItemClickListener() {@Override//重寫單擊響應public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {setTitle("點擊第" + arg2 + "個項目");//直接在標題顯示}});// 添加長按點擊list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {menu.setHeaderTitle("功能選擇菜單");menu.add(0, 0, 0, "預覽(設想功能)");menu.add(0, 1, 0, "返回(設想功能)");}});}// 長按菜單響應函數@Overridepublic boolean onContextItemSelected(MenuItem item) {setTitle("選擇了長按菜單中第" + item.getItemId() + "項功能");//又是在標題列return super.onContextItemSelected(item);}}
不要每一次勵志過後,該上網的上網,該Dota的Dota。
每天早上叫醒你的不是鬧鐘,而是夢想。