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的開關(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()方法用來捕捉用戶單擊的是哪個(gè)item gv.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // 判斷Adapter中元素的個(gè)數(shù),判斷被單擊的是第幾個(gè)元素的名稱 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ù)必須為TextView進(jìn)行配置。若需要更改放入item的文字模式,可以通過這個(gè)來設(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)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android基本組件用法總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- android開發(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開發(fā)中ListView自定義adapter的封裝
- Android中的Adapter簡(jiǎn)單介紹
- Android Adapter的幾個(gè)常用方法
- Kotlin編寫Android適配器Adapter
- Android ListView適配器(Adapter)優(yōu)化方法詳解
- Android開發(fā)中總結(jié)的Adapter工具類【附完整源碼下載】
相關(guān)文章
Android開發(fā)實(shí)現(xiàn)加載網(wǎng)絡(luò)圖片并下載至本地SdCard的方法
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)加載網(wǎng)絡(luò)圖片并下載至本地SdCard的方法,涉及Android圖片文件的讀取、保存及權(quán)限相關(guān)操作技巧,需要的朋友可以參考下2018-01-01Android編程實(shí)現(xiàn)異步消息處理機(jī)制的幾種方法總結(jié)
這篇文章主要介紹了Android編程實(shí)現(xiàn)異步消息處理機(jī)制的幾種方法,結(jié)合實(shí)例形式詳細(xì)總結(jié)分析了Android異步消息處理機(jī)制的原理、相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-08-08Android 判斷日期是否在一年以內(nèi)的算法實(shí)例
下面小編就為大家?guī)硪黄狝ndroid 判斷日期是否在一年以內(nèi)的算法實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04Android項(xiàng)目中引入aar包的正確方法介紹
生成aar之后下一步就是如何引用本地的aar文件,下面這篇文章主要給大家介紹了關(guān)于Android項(xiàng)目中引入aar包的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08android 實(shí)現(xiàn)控件左右或上下抖動(dòng)教程
這篇文章主要介紹了android 實(shí)現(xiàn)控件左右或上下抖動(dòng)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03小心!Listview結(jié)合EditText使用實(shí)例中遇到的那些坑
小心!Listview結(jié)合EditText使用實(shí)例中遇到的那些坑,解決EditText焦點(diǎn)丟失、保存數(shù)據(jù)以及滾動(dòng)沖突的問題,感興趣的小伙伴們可以參考一下2016-06-06Android開發(fā)之PopupWindow實(shí)現(xiàn)彈窗效果
這篇文章主要為大家詳細(xì)介紹了Android開發(fā)之PopupWindow實(shí)現(xiàn)彈窗效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09Android實(shí)現(xiàn)仿美團(tuán)、順豐快遞數(shù)據(jù)加載效果
本片文章教給大家用Android實(shí)現(xiàn)美團(tuán)和順豐快遞APP的數(shù)據(jù)加載的動(dòng)畫效果,有興趣的朋友跟著學(xué)習(xí)嘗試下吧。2017-12-12