招賢納士 | | BBS
首頁 > 新聞資訊 > 營銷共享 >新聞詳情
android 安卓 listview攻略
鼎瀛科技:2013-11-25 閱讀數:8861 關鍵詞:
 

ListView用來顯示列表控件,用戶可以選擇和操作這個列表,同時會觸發一些事件。鼠標滾動時會觸發setOnItemSelectedListener事件,點擊時會觸發setOnItemClickListener事件。


工具/原料

  • 需要配置android開發環境,如Eclipse、Java Jdk、Android Sdk。

步驟/方法

  1. 用ListView顯示電話本中的信息

    並處理鼠標滾動及點擊事件。程序運行前可以查看電話本中的數據,程序運行之後,滾動鼠標中鍵,觸發setOnItemSelectedListener事件的處理。

    最後點擊ListView列表中的一項來觸發setOnItemClickListener事件。

  2. 編碼邏輯

    先創LinearLayout對象和ListView對象,LinearLayout用來顯示ListView。然後通過ListAdapter將獲得的電話本數據與ListView鏈接起來。接著將ListAdapter添加到ListView中。最後將ListView添加到LinearLayout中,讓屏幕顯示LinearLayout。要處理ListView事件,需要爲ListView視圖添加setOnItemSelectedListener監聽以及setOnItemClickListener監聽。

  3. 實例源碼

    public class Activity01 extends Activity {

    LinearLayout m_LinearLayout;

    ListView m_ListView;


    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);


    /* 創建LinearLayout布局對象 */

    m_LinearLayout = new LinearLayout(this);

    /* 設置布局LinearLayout的屬性 */

    m_LinearLayout.setOrientation(LinearLayout.VERTICAL);

    m_LinearLayout.setBackgroundColor(android.graphics.Color.BLACK);


    /* 創建ListView對象 */

    m_ListView = new ListView(this);

    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(

    LinearLayout.LayoutParams.FILL_PARENT,

    LinearLayout.LayoutParams.WRAP_CONTENT);

    m_ListView.setBackgroundColor(Color.BLACK);


    /* 添加m_ListView到m_LinearLayout布局 */

    m_LinearLayout.addView(m_ListView, param);


    /* 設置顯示m_LinearLayout布局 */

    setContentView(m_LinearLayout);


    // 獲取數據庫Phones的Cursor

    Cursor cur = getContentResolver().query(

    ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

    startManagingCursor(cur);


    // ListAdapter是ListView和後台數據的橋梁

    ListAdapter adapter = new SimpleCursorAdapter(this,

    // 定義List中每一行的顯示模板

    // 表示每一行包含兩個數據項

    android.R.layout.simple_list_item_2,

    // 數據庫的Cursor對象

    cur,

    // 從數據庫的NAME和NUMBER兩列中取數據

    new String[] { PhoneLookup.DISPLAY_NAME, PhoneLookup.NUMBER },

    // 與NAME和NUMBER對應的Views

    new int[] { android.R.id.text1, android.R.id.text2 });


    /* 將adapter添加到m_ListView中 */

    m_ListView.setAdapter(adapter);


    /* 爲m_ListView視圖添加setOnItemSelectedListener監聽 */

    m_ListView

    .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {


    @Override

    public void onItemSelected(AdapterView<?> arg0, View arg1,

    int arg2, long arg3) {


    DisplayToast("滾動到第"

    + Long.toString(arg0.getSelectedItemId()) + "項");

    }


    @Override

    public void onNothingSelected(AdapterView<?> arg0) {

    // 沒有選中

    }

    });


    /* 爲m_ListView視圖添加setOnItemClickListener監聽 */

    m_ListView

    .setOnItemClickListener(new AdapterView.OnItemClickListener() {


    @Override

    public void onItemClick(AdapterView<?> arg0, View arg1,

    int arg2, long arg3) {

    // 于對選中的項進行處理

    DisplayToast("選中了第" + Integer.toString(arg2 + 1) + "項");

    }


    });


    }


    /* 顯示Toast */

    public void DisplayToast(String str) {

    Toast.makeText(this, str, Toast.LENGTH_SHORT).show();

    }

    }


    END

Consulting

在線咨詢
在線客服
+86 13362876698
電子郵箱
305625228@qq.com
QQ在線咨詢
whatsapp: +85265659965
售後技術支持