一起去看小學期之Android編程 – 清單控制項使用

來源:互聯網
上載者:User

本執行個體提供清單控制項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。

每天早上叫醒你的不是鬧鐘,而是夢想。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.