listView:顯示列表的控件;
數據適配器:連接數據源與視圖界面的橋梁;
ArrayAdapter--數組;
SimpleAdapter--復雜的數據類型;
SimpleAdapter的構造函數:
new SimpleAdapter(context,data,resource,from,to);
context--上下文;
data --數據源,一個map所組成的list集合,每一個map對應的是listview中的一行,每一個map
的key必須包含所有在from中所指的值;
resource為每一個列表項的布局文件id;
from --記錄map中的key;
to --綁定數據視圖的id,與from對應;
ArrayAdapter:
第一步:聲明listView與適配器,初始化listView;
第二步:new ArrayAdapter<String>(,,);
第三步;listView.setAdapter(adapter);
SimpleAdapter:
第一步:聲明listView,datalist與適配器,初始化listView;
第二步:new SimpleAdapter(this,data,resource,from,to);
datalist= new ArrayAdpter<Map<String,Ibject>>();
resource-要在layout中新建一個item的xml文件linearLayout,把控件拖入其中作為每一個列表項
的布局格式;
to為new出resource文件中所有控件的id如new int[]{R.id.imageView,R.id.TextView};
from為new String[]{"imageView","TextView"};
data:
1.創建List<Map<String,Object>> dataList;
2.dataList=new ArrayList<Map<String,Object>>();
3.定義函數getData();
private List<Map<String,Object>> getData()
{
for(int i=0;i<20;i++)
{
Map<String,Object>map=new HashMap<String,Object>();
map.put("imageView",R.drawable....);
map.put("TextView","imooc"+i);
dataList.add(map);
}
return dataList;
}
監聽器:
OnItemClickListener:單條目的點擊事件;
OnScrollListener:滾動中加載數據;
OnItemClickListener():
第一步:在Activity中通過接口方式實現implements OnItemClickListener();
第二步:讓listView加載事件監聽器setOnItemClickListener(this);
第三步:在OnItemClickListener()函數中,通過listView的getItemAtPosition(position)獲得位
置值,并將值傳給position;通過Toast.makeText(context,text,duration).show();
context--this為上下文;
text--"position :"+position 輸出內容;
duration--Toast.LENGTH_SHORT為打印時長;
OnScrollListener():
第一步:同OnItemClickListener()的第一步;
創建出了兩個函數onScrollStateChanged(),onScroll();
第二步:讓listView加載事件監聽器setOnScrollListener(this);
第三步:在OnScrollStateChange()中scrollState共有3種狀態:
SCROLL_STATE_FLING:用戶在手指離開屏幕前用力滑動,由于慣性繼續滑動;
SCROLL_STATE_IDLE:視圖已經停止;
SCROLL_STATE_TOUCH_SCROLL:用戶手指沒有離開屏幕,正在滑動;
simp_adapter.notifyDataSetChanged();通知UI重新刷新;

well_liu
2014-08-26
1 回答
舉報
0/150
提交
取消
2014-10-23
總結的很好