Android中GridView和ArrayAdapter用法實例分析
本文實例分析了Android中GridView和ArrayAdapter用法。分享給大家供大家參考,具體如下:
GridView是一個表格化的二維排版的View,當(dāng)GridView的文字放不下時會出現(xiàn)scrolling的效果,GridView中的元素命名為Item,要將Item放入GridView,需要ArrayAdapter對象。
例子如下:
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; //兩個按鈕是動態(tài)放入GridView的開關(guān),b01是設(shè)置GridView為兩列格式,并放入4 //個item,b02設(shè)置為三列格式,并放入9個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()方法用來捕捉用戶單擊的是哪個item gv.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // 判斷Adapter中元素的個數(shù),判斷被單擊的是第幾個元素的名稱 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的第二個參數(shù)textViewResourceId,參數(shù)必須為TextView進(jìn)行配置。若需要更改放入item的文字模式,可以通過這個來設(shè)置文字的大小、模式的屬性設(shè)置,而一旦放入ArrayAdapter,這個配置會立即生效。也可以設(shè)置許多的layout xml,提供給不同的GridView使用,讓每一個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é)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- android開發(fā)中ListView與Adapter使用要點介紹
- 詳解Android App中ViewPager使用PagerAdapter的方法
- Android中 自定義數(shù)據(jù)綁定適配器BaseAdapter的方法
- Android自定義Spinner下拉列表(使用ArrayAdapter和自定義Adapter實現(xiàn))
- Android listview與adapter詳解及實例代碼
- Android開發(fā)中ListView自定義adapter的封裝
- Android中的Adapter簡單介紹
- Android Adapter的幾個常用方法
- Kotlin編寫Android適配器Adapter
- Android ListView適配器(Adapter)優(yōu)化方法詳解
- Android開發(fā)中總結(jié)的Adapter工具類【附完整源碼下載】
相關(guān)文章
Android開發(fā)實現(xiàn)加載網(wǎng)絡(luò)圖片并下載至本地SdCard的方法
這篇文章主要介紹了Android開發(fā)實現(xiàn)加載網(wǎng)絡(luò)圖片并下載至本地SdCard的方法,涉及Android圖片文件的讀取、保存及權(quán)限相關(guān)操作技巧,需要的朋友可以參考下2018-01-01Android編程實現(xiàn)異步消息處理機(jī)制的幾種方法總結(jié)
這篇文章主要介紹了Android編程實現(xiàn)異步消息處理機(jī)制的幾種方法,結(jié)合實例形式詳細(xì)總結(jié)分析了Android異步消息處理機(jī)制的原理、相關(guān)實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下2018-08-08小心!Listview結(jié)合EditText使用實例中遇到的那些坑
小心!Listview結(jié)合EditText使用實例中遇到的那些坑,解決EditText焦點丟失、保存數(shù)據(jù)以及滾動沖突的問題,感興趣的小伙伴們可以參考一下2016-06-06Android開發(fā)之PopupWindow實現(xiàn)彈窗效果
這篇文章主要為大家詳細(xì)介紹了Android開發(fā)之PopupWindow實現(xiàn)彈窗效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-09-09Android實現(xiàn)仿美團(tuán)、順豐快遞數(shù)據(jù)加載效果
本片文章教給大家用Android實現(xiàn)美團(tuán)和順豐快遞APP的數(shù)據(jù)加載的動畫效果,有興趣的朋友跟著學(xué)習(xí)嘗試下吧。2017-12-12