Android中GridView和ArrayAdapter用法實(shí)例分析
本文實(shí)例分析了Android中GridView和ArrayAdapter用法。分享給大家供大家參考,具體如下:
GridView是一個(gè)表格化的二維排版的View,當(dāng)GridView的文字放不下時(shí)會(huì)出現(xiàn)scrolling的效果,GridView中的元素命名為Item,要將Item放入GridView,需要ArrayAdapter對(duì)象。
例子如下:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.TextView;
public class A06Activity extends Activity {
private TextView tv;
//兩個(gè)按鈕是動(dòng)態(tài)放入GridView的開(kāi)關(guān),b01是設(shè)置GridView為兩列格式,并放入4
//個(gè)item,b02設(shè)置為三列格式,并放入9個(gè)Item
private Button b01,b02;//
private GridView gv;
private String[] s1,s2;
private ArrayAdapter<String> aa;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView)findViewById(R.id.tv);
b01=(Button)findViewById(R.id.button01);
b02=(Button)findViewById(R.id.button02);
gv=(GridView)findViewById(R.id.gv);
s1=new String[]{
getResources().getString(R.string.str_list01),
getResources().getString(R.string.str_list02),
getResources().getString(R.string.str_list03),
getResources().getString(R.string.str_list04)
};
s2=new String[]{
getResources().getString(R.string.str_list01),
getResources().getString(R.string.str_list02),
getResources().getString(R.string.str_list03),
getResources().getString(R.string.str_list04),
getResources().getString(R.string.str_list01),
getResources().getString(R.string.str_list02),
getResources().getString(R.string.str_list03),
getResources().getString(R.string.str_list04),
getResources().getString(R.string.str_list04)
};
b01.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
gv.setNumColumns(2);
aa=new ArrayAdapter<String>(A06Activity.this,R.layout.list_item_l_small,s1);
gv.setAdapter(aa);
gv.setSelection(2);
gv.refreshDrawableState();
}
});
b02.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
gv.setNumColumns(2);
aa=new ArrayAdapter<String>(A06Activity.this,R.layout.list_item_l_small,s2);
gv.setAdapter(aa);
}
});
//利用GridView的OnClickListener()方法用來(lái)捕捉用戶(hù)單擊的是哪個(gè)item
gv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// 判斷Adapter中元素的個(gè)數(shù),判斷被單擊的是第幾個(gè)元素的名稱(chēng)
switch(aa.getCount()){
case 4:
tv.setText(s1[arg2]);
break;
case 9:
tv.setText(s2[arg2]);
break;
}
}
});
}
}
res/layout/main.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<Button
android:id="@+id/button01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/button02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<GridView
android:id="@+id/gv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></GridView>
</LinearLayout>
res/layout/list_item_l_small的作用是配置ArrayAdapter的第二個(gè)參數(shù)textViewResourceId,參數(shù)必須為T(mén)extView進(jìn)行配置。若需要更改放入item的文字模式,可以通過(guò)這個(gè)來(lái)設(shè)置文字的大小、模式的屬性設(shè)置,而一旦放入ArrayAdapter,這個(gè)配置會(huì)立即生效。也可以設(shè)置許多的layout xml,提供給不同的GridView使用,讓每一個(gè)GridView都有不同的風(fēng)貌。
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myCheckedTextView1" android:layout_width="match_parent" android:layout_height="match_parent" android:textColor="@drawable/blue" android:textSize="12dp" android:textAppearance="@android:attr/textAppearanceLarge" android:gravity="center_vertical" android:paddingLeft="6dip" android:minHeight="@android:attr/listPreferredItemHeight" />
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android基本組件用法總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- android開(kāi)發(fā)中ListView與Adapter使用要點(diǎn)介紹
- 詳解Android App中ViewPager使用PagerAdapter的方法
- Android中 自定義數(shù)據(jù)綁定適配器BaseAdapter的方法
- Android自定義Spinner下拉列表(使用ArrayAdapter和自定義Adapter實(shí)現(xiàn))
- Android listview與adapter詳解及實(shí)例代碼
- Android開(kāi)發(fā)中ListView自定義adapter的封裝
- Android中的Adapter簡(jiǎn)單介紹
- Android Adapter的幾個(gè)常用方法
- Kotlin編寫(xiě)Android適配器Adapter
- Android ListView適配器(Adapter)優(yōu)化方法詳解
- Android開(kāi)發(fā)中總結(jié)的Adapter工具類(lèi)【附完整源碼下載】
相關(guān)文章
android實(shí)現(xiàn)字體閃爍動(dòng)畫(huà)的方法
這篇文章主要介紹了android實(shí)現(xiàn)字體閃爍動(dòng)畫(huà)的方法,涉及Android中線程調(diào)用和Timer計(jì)時(shí)器的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
Android Studio進(jìn)行APP圖標(biāo)更改的兩種方式總結(jié)
這篇文章主要介紹了Android Studio進(jìn)行APP圖標(biāo)更改的兩種方式總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
android studio 3.6.1升級(jí)后如何處理 flutter問(wèn)題
這篇文章主要介紹了android-studio-3.6.1升級(jí)后 flutter問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Android開(kāi)發(fā):微信授權(quán)登錄與微信分享完全解析
本篇文章主要介紹了Android微信授權(quán)登錄與微信分享,具有一定的參考價(jià)值,有需要的可以了解一下。2016-11-11
Android開(kāi)發(fā)之App widget用法實(shí)例分析
這篇文章主要介紹了Android開(kāi)發(fā)之App widget用法,結(jié)合實(shí)例形式詳細(xì)分析了Android開(kāi)發(fā)中使用App widget組件的具體步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
Android 三行代碼實(shí)現(xiàn)高斯模糊效果
這篇文章主要介紹了Android 三行代碼實(shí)現(xiàn)高斯模糊效果,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
Android 程序申請(qǐng)權(quán)限注意事項(xiàng)
本主要介紹Android 程序申請(qǐng)權(quán)限注意事項(xiàng),這里整理了相關(guān)資料,并詳細(xì)說(shuō)明如何避免開(kāi)發(fā)的程序支持設(shè)備減少,有需要的小伙伴可以參考下2016-09-09

