Android學(xué)習(xí)筆記09—ListView開發(fā)詳解(一)

引言

ListView是Android中最常用的控件之一简软,幾乎所有的應(yīng)用程序都會用到它煤杀。由于手機(jī)屏幕空間都比較有限汇陆,能夠一次性在屏幕上顯示的內(nèi)容并不多,當(dāng)我們的程序中有大量的數(shù)據(jù)需要展示的時候宦搬,可以借助ListView來實現(xiàn)牙瓢。

總體流程

  • 新建一個Module,并讓XxxActivity繼承ListActivity
  • 創(chuàng)建一個列表選項的字符串?dāng)?shù)組對象
  • 實例化并初始化列表選項數(shù)組對象
  • 創(chuàng)建一個數(shù)組適配器(Adapter)间校,用于裝載基礎(chǔ)數(shù)據(jù)并設(shè)置列表選型的顯示樣式
  • 將創(chuàng)建好的適配器綁定到窗體默認(rèn)的ListView組件中
  • 重寫onListItemClick()方法完成對列表選項的單擊事件處理
用法示例

Step-1 新建一個Activity窗體類

新建Activity.JPG

使用ListView矾克,窗體類必須繼承android.app.ListActivity

注意:窗體類在繼承ListActivity之后,無需與布局資源綁定

public class MainActivity extends ListActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
}

Step-2 創(chuàng)建一個列表選項的字符串?dāng)?shù)組對象

private String[] listItems;

Step-3 實例化并初始化列表選項數(shù)組對象

listItems = new String[]{"AdvanceListView","TwoListView","ThirdListView"}; 

Step-4 創(chuàng)建一個數(shù)組適配器(Adapter)憔足,用于裝載基礎(chǔ)數(shù)據(jù)并設(shè)置列表選型的顯示樣式

語法:ArrayAdapter<String> adapter = new ArrayAdapter(Context,int,T[ ]);
參數(shù)1:上下文環(huán)境
參數(shù)2:列表選項樣式布局
參數(shù)3:列表數(shù)據(jù)源

ArrayAdapter<String> adapter = new ArrayAdapter(this,
                 android.R.layout.simple_list_item_1,
                                          listItems);

Step-5 將創(chuàng)建好的適配器綁定到窗體默認(rèn)的ListView組件中

setListAdapter(adapter);

Step-6 重寫onListItemClick()方法完成對列表選項的單擊事件處理

語法:protected void onListItemClick(ListView l, View v, int position, long id)
參數(shù)1:當(dāng)前操作的ListView組件對象
參數(shù)2:當(dāng)前選擇的列表選項視圖對象
參數(shù)3:當(dāng)前選中的列表選項的下標(biāo)位置標(biāo)識(默認(rèn)從0開始)
參數(shù)4:當(dāng)前選中的id編號(長整型類型)

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    switch (position){
        case 0:
            Toast.makeText(MainActivity.this,"選擇["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
            break;
        case 1:
            Toast.makeText(MainActivity.this,"選擇["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
            break;
        case 2:
            Toast.makeText(MainActivity.this,"選擇["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
    }
}
結(jié)果展示

MainActivity.JPG
代碼清單

import android.app.ListActivity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

/*步驟一:創(chuàng)建一個列表選項的字符串?dāng)?shù)組對象*/
private String[] listItems;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    /*步驟二:實例化并初始化列表選項數(shù)組對象*/
    listItems = new String[]{"AdvanceListView","CustomerActivity","ViewHolderActivity"};
    /*步驟三:創(chuàng)建一個數(shù)組適配器(Adapter)用于裝載基礎(chǔ)數(shù)據(jù)并設(shè)置列表選項的顯示樣式*/
    ArrayAdapter<String> adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,listItems);
    /*步驟四:將創(chuàng)建好的適配器綁定到窗體默認(rèn)的ListView組件中*/
    setListAdapter(adapter);
}

/*步驟五:重寫onListItemClick()方法完成對列表選項的單擊事件處理*/
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

    super.onListItemClick(l, v, position, id);
    switch (position){
        case 0:
            Toast.makeText(MainActivity.this,"選擇["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
            break;
        case 1:
            Toast.makeText(MainActivity.this,"選擇["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
            break;
        case 2:
            Toast.makeText(MainActivity.this,"選擇["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
    }
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胁附,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子滓彰,更是在濱河造成了極大的恐慌控妻,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揭绑,死亡現(xiàn)場離奇詭異弓候,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)他匪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門菇存,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诚纸,你說我怎么就攤上這事撰筷。” “怎么了畦徘?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵毕籽,是天一觀的道長。 經(jīng)常有香客問我井辆,道長关筒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任杯缺,我火速辦了婚禮蒸播,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘萍肆。我一直安慰自己袍榆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布塘揣。 她就那樣靜靜地躺著包雀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪亲铡。 梳的紋絲不亂的頭發(fā)上才写,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天葡兑,我揣著相機(jī)與錄音,去河邊找鬼赞草。 笑死讹堤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的厨疙。 我是一名探鬼主播洲守,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沾凄!你這毒婦竟也來了岖沛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤搭独,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后廊镜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牙肝,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年嗤朴,在試婚紗的時候發(fā)現(xiàn)自己被綠了配椭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡雹姊,死狀恐怖股缸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吱雏,我是刑警寧澤敦姻,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站歧杏,受9級特大地震影響镰惦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜犬绒,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一旺入、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凯力,春花似錦茵瘾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至慷暂,卻和暖如春聘殖,著一層夾襖步出監(jiān)牢的瞬間晨雳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工奸腺, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留餐禁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓突照,卻偏偏與公主長得像帮非,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子讹蘑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容