首頁 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測 / 活動(dòng)區(qū)

交流區(qū) | 測硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 15301|回復(fù): 0
上一主題 下一主題
[教程]

《Android Dev Guide》系列教程18:通過適配器給AdapterView綁定數(shù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
>
AdapterView是ViewGroup的一個(gè)子類,由一個(gè)適配器,和綁定到適配器的某些類型的數(shù)據(jù)組合而成。當(dāng)你需要顯示一些存儲(chǔ)的數(shù)據(jù)時(shí),AdapterView是非常有用的。
Gallery、ListView和Spinner便是AdapterView的例子,他們可以讓你使用一些特殊格式的數(shù)據(jù)并且用一種特定的方式來顯示這些數(shù)據(jù)。
ApapterView對(duì)象有兩個(gè)主要職責(zé):
@ 用數(shù)據(jù)來填充視圖
@ 處理用戶的操作事件
把數(shù)據(jù)插入到視圖里,通常是由綁定適配器的AdapterView類來完成的,通常是從一些額外的存儲(chǔ)中獲得的數(shù)據(jù),比如代碼來提供或者從設(shè)備的數(shù)據(jù)庫中查詢的結(jié)果集。例如下面的代碼:
1-使用一個(gè)已存在的View建立一個(gè)Spinner,然后綁定一個(gè)ArrayAdapter類來從本地資源里讀取顏色列表。
2-建立另一個(gè)Spinner對(duì)象,綁定到一個(gè)SimpleCursorAdapter類,然后從手機(jī)的聯(lián)系人列表讀取聯(lián)系人的名字。
   
   
  1. // Get a Spinner and bind it to an ArrayAdapter that      
    // references a String array.     
    Spinner s1 = (Spinner) findViewById(R.id.spinner1);     
    ArrayAdapter adapter = ArrayAdapter.createFromResource(     
        this, R.array.colors, android.R.layout.simple_spinner_item);     
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);     
    s1.setAdapter(adapter);     
    // Load a Spinner and bind it to a data query.     
    private static String[] PROJECTION = new String[] {     
            People._ID, People.NAME     
        };     
    Spinner s2 = (Spinner) findViewById(R.id.spinner2);     
    Cursor cur = managedQuery(People.CONTENT_URI, PROJECTION, null, null);     
             
    SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,     
        android.R.layout.simple_spinner_item, // Use a template     
                                              // that displays a     
                                              // text view     
        cur, // Give the cursor to the list adapter     
        new String[] {People.NAME}, // Map the NAME column in the     
                                             // people database to...     
        new int[] {android.R.id.text1}); // The "text1" view defined in     
                                         // the XML template     
                                                 
    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);     
    s2.setAdapter(adapter2);  
復(fù)制代碼
注意:在PROJECTION字段中,你必須有一個(gè)People._ID列,否則會(huì)拋出一個(gè)異常。如果期間你修改了數(shù)據(jù),那么需要調(diào)用一下notifyDataSetChanged()方法。這樣視圖便會(huì)做出相應(yīng)更新。
通過實(shí)現(xiàn)AdapterView.onItemClickListener監(jiān)聽器類,來獲取用戶的選擇。   
  1. // Create a message handling object as an anonymous class.     
    private OnItemClickListener mMessageClickedHandler = new OnItemClickListener() {     
        public void onItemClick(AdapterView parent, View v, int position, long id)     
        {     
            // Display a messagebox.     
            Toast.makeText(mContext,"Youve got an event",Toast.LENGTH_SHORT).show();     
        }     
    };     
    // Now hook into our object and set its onItemClickListener member     
    // to our class handler object.     
    mHistoryView = (ListView)findViewById(R.id.history);     
    mHistoryView.setOnItemClickListener(mMessageClickedHandler);  
復(fù)制代碼
  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

上一篇:《Android Dev Guide》系列教程
下一篇:《Android Dev Guide》系列教程16:用戶通知(3)創(chuàng)建狀態(tài)欄通知

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2025-1-22 15:01 , Processed in 0.059333 second(s), 16 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2025 ZNDS.Com

快速回復(fù) 返回頂部 返回列表