android GridView學(xué)習(xí)筆記
第一步:新建項(xiàng)目
咳咳,這個(gè)就不多說了,我這里用的是API級別是google APIs:14
第二部:視圖層開發(fā)
我們這里直接修改main.xml文件,里面主要放上一個(gè)GridView控件。
其中android:numColumns表示一行顯示多少列,也可填寫“auto_fit”,表示自動適應(yīng)。
然后我們新建一個(gè)item.xml用來表示gridView中,每一個(gè)項(xiàng)對應(yīng)的視圖。
這里需要為ImageView和TextView設(shè)置ID,在后面會用到
第三步:activity開發(fā)
廢話就不多說了,直接貼代碼,我把代碼注釋都寫得詳細(xì)一些
GridViewActivity.java
package?org.example.gridview;
import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.List;
import?android.app.Activity;
import?android.os.Bundle;
import?android.view.View;
import?android.widget.AdapterView;
import?android.widget.GridView;
import?android.widget.ListAdapter;
import?android.widget.SimpleAdapter;
import?android.widget.Toast;
public?class?GridViewActivity?extends?Activity?{
????//?gridView控件
????private?GridView?gridView;
????//?假設(shè)顯示8個(gè)item,這對應(yīng)著8個(gè)item的顯示名稱
????private?String[]?itemTexts?=?new?String[]?{?"搜索",?"文件管理",?"下載管理",?"全屏",?"網(wǎng)址",?"加入書簽",?"分享頁面",?"關(guān)閉"?};
????//?這對應(yīng)著8個(gè)item的圖片,這里我偷懶了,統(tǒng)一用了系統(tǒng)自帶的圖片
????private?int[]?itemImages?=?new?int[]?{?R.drawable.ic_launcher,?R.drawable.ic_launcher,?R.drawable.ic_launcher,
????????????R.drawable.ic_launcher,?R.drawable.ic_launcher,?R.drawable.ic_launcher,?R.drawable.ic_launcher,
????????????R.drawable.ic_launcher?};
????@Override
????public?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.main);
????????//?初始化參數(shù)
????????gridView?=?(GridView)?findViewById(R.id.gridView);
????????//?設(shè)置數(shù)據(jù)匹配器
????????gridView.setAdapter(getAdapter());
????????//?只是顯示是沒用用的,這里我們在添加單擊item時(shí)的監(jiān)聽事件
????????gridView.setOnItemClickListener(new?AdapterView.OnItemClickListener()?{
????????????@Override
????????????public?void?onItemClick(AdapterView?arg0,?View?arg1,?int?index,?long?arg3)?{
????????????????Toast.makeText(GridViewActivity.this,?index?+?"",?2).show();
????????????}
????????});
????}
????/**
?????*?DOC?獲取數(shù)據(jù)匹配器
?????*/
????private?ListAdapter?getAdapter()?{
????????//?該list用來存放每一個(gè)item對應(yīng)的文字和圖片
????????List<HashMap>?list?=?new?ArrayList<HashMap>();
????????for?(int?i?=?0;?i?<?itemTexts.length;?i++)?{
????????????HashMapmap?=?new?HashMap();
????????????map.put("itemText",?itemTexts[i]);
????????????map.put("itemImage",?itemImages[i]);
????????????list.add(map);
????????}
????????//?該構(gòu)造函數(shù),這里說明一下
????????//?new?SimpleAdapter(Context,?上面的list,每一個(gè)項(xiàng)對應(yīng)的itemView,itemView里顯示的所有信息(要和list里的map里的名稱一樣)?,
????????//?itemView里控件id);
????????SimpleAdapter?simpleAdapter?=?new?SimpleAdapter(this,?list,?R.layout.item,?new?String[]?{?"itemText",?"itemImage"?},
????????????????new?int[]?{?R.id.imageText,?R.id.imageView?});
????????return?simpleAdapter;
????}
}




