freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

android開發(fā)技巧總匯android開發(fā)培訓(xùn)-教師必備-資料下載頁

2025-04-16 12:27本頁面
  

【正文】 定義好一個用來顯示每一個列內(nèi)容的xml ?xml version= encoding=utf8?LinearLayout xmlns:android=android:orientation=horizontal android:layout_width=fill_parentandroid:layout_height=fill_parentImageView android:id=@+id/img android:layout_width=wrap_content android:layout_height=wrap_content android:layout_margin=5px/LinearLayout android:orientation=vertical android:layout_width=wrap_content android:layout_height=wrap_content TextView android:id=@+id/title android:layout_width=wrap_content android:layout_height=wrap_content android:textColor=FFFFFFFF android:textSize=22px / TextView android:id=@+id/info android:layout_width=wrap_content android:layout_height=wrap_content android:textColor=FFFFFFFF android:textSize=13px //LinearLayout/LinearLayout復(fù)制代碼下面是實(shí)現(xiàn)代碼: /*** @author allin* */public class MyListView3 extends ListActivity {// private ListString data = new ArrayListString()。@Overridepublic void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 SimpleAdapter adapter = new SimpleAdapter(this,getData(), new String[]{title,info,img}, new int[]{,})。 setListAdapter(adapter)。}private ListMapString, Object getData() { ListMapString, Object list = new ArrayListMapString, Object()。 MapString, Object map = new HashMapString, Object()。 (title, G1)。 (info, google 1)。 (img, )。 (map)。 map = new HashMapString, Object()。 (title, G2)。 (info, google 2)。 (img, )。 (map)。 map = new HashMapString, Object()。 (title, G3)。 (info, google 3)。 (img, )。 (map)。 return list。}}復(fù)制代碼使用simpleAdapter的數(shù)據(jù)用一般都是HashMap構(gòu)成的List,list的每一節(jié)對應(yīng)ListView的每一行。HashMap的每個鍵值數(shù)據(jù)映射到布局文件中對應(yīng)id的組件上。因?yàn)橄到y(tǒng)沒有對應(yīng)的布局文件可用。下面做適配,new一個SimpleAdapter參數(shù)一次是:this,布局文件(),HashMap的 title 和 info,img。布局文件的組件id,title,info,img。布局文件的各組件分別映射到HashMap的各元素上,完成適配。運(yùn)行效果如下圖: 有按鈕的ListView 但是有時候,列表不光會用來做顯示用,我們同樣可以在在上面添加按鈕。添加按鈕首先要寫一個有按鈕的xml文件,然后自然會想到用上面的方法定義一個適配器,然后將數(shù)據(jù)映射到布局文件上。但是事實(shí)并非這樣,因?yàn)榘粹o是無法映射的,即使你成功的用布局文件顯示出了按鈕也無法添加按鈕的響應(yīng),這時就要研究一下ListView是如何現(xiàn)實(shí)的了,而且必須要重寫一個類繼承BaseAdapter。下面的示例將顯示一個按鈕和一個圖片,兩行字如果單擊按鈕將刪除此按鈕的所在行。并告訴你ListView究竟是如何工作的。效果如下: ?xml version= encoding=utf8?LinearLayout xmlns:android=android:orientation=horizontal android:layout_width=fill_parentandroid:layout_height=fill_parentImageView android:id=@+id/img android:layout_width=wrap_content android:layout_height=wrap_content android:layout_margin=5px/LinearLayout android:orientation=vertical android:layout_width=wrap_content android:layout_height=wrap_content TextView android:id=@+id/title android:layout_width=wrap_content android:layout_height=wrap_content android:textColor=FFFFFFFF android:textSize=22px / TextView android:id=@+id/info android:layout_width=wrap_content android:layout_height=wrap_content android:textColor=FFFFFFFF android:textSize=13px //LinearLayoutButton android:id=@+id/view_btn android:layout_width=wrap_content android:layout_height=wrap_content android:text=@string/s_view_btn android:layout_gravity=bottom|right //LinearLayout復(fù)制代碼程序代碼: /*** @author allin* */public class MyListView4 extends ListActivity {private ListMapString, Object mData。@Overridepublic void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 mData = getData()。 MyAdapter adapter = new MyAdapter(this)。 setListAdapter(adapter)。}private ListMapString, Object getData() { ListMapString, Object list = new ArrayListMapString, Object()。 MapString, Object map = new HashMapString, Object()。 (title, G1)。 (info, google 1)。 (img, )。 (map)。 map = new HashMapString, Object()。 (title, G2)。 (info, google 2)。 (img, )。 (map)。 map = new HashMapString, Object()。 (title, G3)。 (info, google 3)。 (img, )。 (map)。 return list。}// ListView 中某項被選中后的邏輯@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) { (MyListView4click, (String)(position).get(title))。}/** * listview中點(diǎn)擊按鍵彈出對話框 */public void showInfo(){ new (this) .setTitle(我的listview) .setMessage(介紹...) .setPositiveButton(確定, new () { @Override public void onClick(DialogInterface dialog, int which) { } }) .show()。}public final class ViewHolder{ public ImageView img。 public TextView title。 public TextView info。 public Button viewBtn。}public class MyAdapter extends BaseAdapter{ private LayoutInflater mInflater。 public MyAdapter(Context context){ = (context)。 } @Override public int getCount() { // TODO Autogenerated method stub return ()。 } @Override public Object getItem(int arg0) { // TODO Autogenerated method stub return null。 } @Override public long getItemId(int arg0) { // TODO Autogenerated method stub return 0。 } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null。 if (convertView == null) { holder=new ViewHolder()。 convertView = (, null)。 = (ImageView)()。 = (TextView)()。 = (TextView)()。 = (Button)()。 (holder)。 }else { holder = (ViewHolder)()。 } ((Integer)(position).get(img))。 ((String)(position).get(title))。 ((String)(position).get(info))。 (new () { @Override public void onClick(View v) { showInfo()。 } })。 return convertView。 }}} 復(fù)制代碼  下面將對上述代碼,做詳細(xì)的解釋,listView在開始繪制的時候,系統(tǒng)首先調(diào)用getCount()函數(shù),根據(jù)他的返回值得到listView的長度(這也是為什么在開始的第一張圖特別的標(biāo)出列表長度),然后根據(jù)這個長度,調(diào)用getView()逐一繪制每一行。如果你的getCount()返回值是0的話,列表將不顯示同樣return 1,就只顯示一行。  系統(tǒng)顯示列表時,首先實(shí)例化一個適配器(這里將實(shí)例化自定義的適配器)。當(dāng)手動完成適配時,必須手動映射數(shù)據(jù),這需要重寫getView()方法。系統(tǒng)在繪制列表的每一行的時候?qū)⒄{(diào)用此方法。getView()有三個參數(shù),position表示將顯示的是第幾行,covertView是從布局文件中inflate來的布局。然后將xml文件中的各個組件實(shí)例化(簡單的findViewById()方法)。這樣便可以將數(shù)據(jù)對應(yīng)到各個組件上了。但是按鈕為了響應(yīng)點(diǎn)擊事件,需要為它添加點(diǎn)擊監(jiān)聽器,這樣就能捕獲點(diǎn)擊事件。至此一個自定義的listView就完成了,現(xiàn)在讓我們回過頭從新審視這個過程。系統(tǒng)要繪制ListView了,他首先獲得要繪制的這個列表的長度,然后開始繪制第一行,怎么繪制呢?調(diào)用getView()函數(shù)。在這個函數(shù)里面首先獲得一個View(實(shí)際上是一個ViewGroup),然后再實(shí)例并設(shè)置各個組件,顯示之。好了,繪制完這一行了。那 再繪制下一行,直到繪完為止。在實(shí)際的運(yùn)行過程中會發(fā)現(xiàn)listView的每一行沒有焦點(diǎn)了,這是因?yàn)锽utton搶奪了listView的焦點(diǎn),只要布局文件中將Button設(shè)置為沒有焦點(diǎn)就OK了。運(yùn)行效果如下圖: LIST例二ListView 是android開發(fā)中最常用的組件之一,它通過一個adapter來構(gòu)建顯示通常有三種adapter可以使用ArrayAdapter ,SimpleAdapter,CursorAdapter。CursorAdapter主要正對數(shù)據(jù)庫使用,下面通過例子介紹ArrayAdapter ,SimpleAdapter的簡單使用: 1:ArrayAdapter 它接受一個數(shù)組或者List作為參數(shù)來構(gòu)建。 一下通過簡單例子說明: 創(chuàng)建Test 繼承ListActi
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1