成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android開發(fā)速成簡(jiǎn)潔教程十一:自定義Adapter顯示列表

移動(dòng)開發(fā) Android
在介紹數(shù)據(jù)綁定時(shí),我們使用了系統(tǒng)自帶的SimpleAdapter。Android 允許自定義Adapter ,理論上可以使用任意的View(Layout)來顯示數(shù)據(jù)。下圖是對(duì)AndroidGraphics2DTutorial做改動(dòng),使用自定義 Adapter來顯示示例Activity列表。

在介紹數(shù)據(jù)綁定時(shí),我們使用了系統(tǒng)自帶的SimpleAdapter。Android 允許自定義Adapter ,理論上可以使用任意的View(Layout)來顯示數(shù)據(jù)。下圖是對(duì)AndroidGraphics2DTutorial做改動(dòng),使用自定義 Adapter來顯示示例Activity列表。

在例子中我們把原來的AndroidGraphics2DTutorial改名為AndroidGraphics2DTutorial1,重新創(chuàng)建一個(gè)類AndroidGraphics2DTutorial來顯示示例列表。打算使用三個(gè)View來顯示列表中的一項(xiàng),一個(gè)圖標(biāo)(例子中隨機(jī)使用了一些圖 標(biāo)),一個(gè)文本框顯示示例Activity名稱,另一個(gè)文本框顯示示例的具體信息。在res\layout目錄下創(chuàng)建一個(gè) activitylist.xml。內(nèi)容如下:

這次我們不從AndroidManifest.xml中讀取Activity列表,而是使用String Array資源。在res\value\string.xml 中添加下列Array資源:

  1. <string-array name=”activity_name”>        
  2.   <item>Bezier</item>        
  3.   <item>Brush</item>        
  4.   <item>Colors</item>        
  5.   <item>Font</item>  
  6.   <item>Image</item> 
  7.   <item>Path</item> 
  8.   <item>Pen</item> 
  9.   <item>Shape</item>  
  10.   <item>Transform</item> 
  11.  </string-array> 
  12.   
  13.  <string-array name=”activity_info”>        
  14.   <item>Bezier</item>        
  15.   <item>Pattern ,Gradients</item>        
  16.   <item>Colors</item>        
  17.   <item>FontDemo, FontTypes</item>  
  18.   <item>DrawMap, JumbleImage, SeeThroughImage</item> 
  19.   <item>Polys, Paths</item> 
  20.   <item>Lines, Dashes, LineCap,LineJoin</item> 
  21.   <item>Oval ,Pear ,Shape2DDemo</item>  
  22.   <item>Transform</item> 
  23.  </string-array> 

定義了這些資源后,可以在程序中使用自定義Adapter來顯示列表:

  1. class ActivityInfo{ 
  2.      int iconIndex; 
  3.      String activityName; 
  4.      String activityInfo; 
  5.     }     
  6.     class ActivityInfoAdapter extends ArrayAdapter<ActivityInfo>{     
  7.      int resource; 
  8.      public ActivityInfoAdapter(Context context, int resourceId, 
  9.        List<ActivityInfo> objects) { 
  10.       super(context, resourceId, objects); 
  11.       resource=resourceId
  12.      }     
  13.      @Override 
  14.      public View getView(int position,View ConvertView,ViewGroup parent){ 
  15.       LinearLayout activityInfoView; 
  16.       ActivityInfo activityInfo=getItem(position); 
  17.       String activity_Name=activityInfo.activityName; 
  18.       String activity_Info=activityInfo.activityInfo; 
  19.       int iconIndex=activityInfo.iconIndex; 
  20.       if(ConvertView==null){ 
  21.        activityInfoView=new LinearLayout(getContext()); 
  22.        String inflater=Context.LAYOUT_INFLATER_SERVICE; 
  23.        LayoutInflater vi; 
  24.    vi=(LayoutInflater)getContext().getSystemService(inflater); 
  25.        vi.inflate(resource, activityInfoView,true); 
  26.       }else{ 
  27.        activityInfoView=(LinearLayout)ConvertView; 
  28.       } 
  29.       TextView activity_NameView 
  30.     =(TextView)activityInfoView.findViewById(R.id.activityName); 
  31.       TextView activity_InfoView 
  32.      =(TextView)activityInfoView.findViewById(R.id.activityInfo); 
  33.       ImageView iconView         =(ImageView)activityInfoView.findViewById(R.id.iconImage); 
  34.       activity_NameView.setText(activity_Name); 
  35.       activity_InfoView.setText(activity_Info); 
  36.       iconView.setImageResource(iconIndex); 
  37.       return activityInfoView;      
  38.      } 
  39.     }     
  40.     public class AndroidGraphics2DTutorial extends ListActivity {     
  41.      private ArrayList<ActivityInfo> activityInfos 
  42.          =new ArrayList<ActivityInfo>(); 
  43.      private ActivityInfoAdapter aa; 
  44.      private final static String packgeName="com.pstreets.graphics2d";   
  45.      @Override 
  46.      public void onCreate(Bundle savedInstanceState) { 
  47.       super.onCreate(savedInstanceState); 
  48.       Resources res = getResources(); 
  49.       String[] activity_Names = res.getStringArray(R.array.activity_name); 
  50.       String[] activity_Infos = res.getStringArray(R.array.activity_info); 
  51.       for(int i=0;i<activity_Names.length;i++){ 
  52.        ActivityInfo activityInfo=new ActivityInfo(); 
  53.        activityInfo.activityName=activity_Names[i]; 
  54.        activityInfo.activityInfo=activity_Infos[i]; 
  55.        activityInfo.iconIndex=R.drawable.icon1+i; 
  56.        activityInfos.add(activityInfo); 
  57.       }     
  58.       aa=new ActivityInfoAdapter(this,R.layout.activitylist,activityInfos); 
  59.       setListAdapter(aa); 
  60.      }     
  61.      @Override 
  62.      protected void onListItemClick(ListView l, View v, int position, long id) { 
  63.       ActivityInfo activityInfo = (ActivityInfo) l.getItemAtPosition(position); 
  64.       Intent intent = new Intent(); 
  65.       intent.setClassName(this, 
  66.            packgeName+".example." +activityInfo.activityName); 
  67.       startActivity(intent); 
  68.      } 
  69.     } 

類ActivityInfo定義列表每個(gè)元素的Data Model,為Activity的Icon資源ID,Activity Name以及Activity Info.

類ActivityInfoAdapter為自定義Adapter,關(guān)鍵的是public View getView(int position,View ConvertView,ViewGroup parent)。這個(gè)函數(shù)返回用來顯示沒個(gè)類別元素的View的示例。例子中為activitylist.xml 對(duì)應(yīng)的Layout。

這個(gè)例子使用的列表框,自定義Adapter適用所有AdapterView,如Spinner,Gallery等。

責(zé)任編輯:閆佳明 來源: imobilebbs
相關(guān)推薦

2013-12-27 14:10:36

Android開發(fā)Android應(yīng)用Transform

2013-12-27 14:05:22

Android開發(fā)Android應(yīng)用Dialog

2013-12-26 15:10:08

Android開發(fā)應(yīng)用和框架Linux 內(nèi)核

2013-12-26 15:43:07

Android開發(fā)Android應(yīng)用Activities

2013-12-27 15:11:17

Android開發(fā)訪問Internet繪制在線地圖

2013-12-26 15:18:09

Android開發(fā)安裝開發(fā)環(huán)境

2013-12-27 14:16:43

Android開發(fā)Android應(yīng)用線程

2013-12-27 14:34:46

Android開發(fā)Android應(yīng)用短信觸發(fā)示例

2013-12-27 13:27:05

Android開發(fā)Android應(yīng)用RadioButton

2013-12-27 16:06:10

Android開發(fā)Android應(yīng)用發(fā)布應(yīng)用

2013-12-26 15:46:30

Android開發(fā)Android應(yīng)用用戶界面設(shè)計(jì)

2013-12-26 16:59:12

Android開發(fā)Android應(yīng)用數(shù)據(jù)綁定Data Bi

2013-12-27 12:51:44

Android開發(fā)Android應(yīng)用引路蜂

2013-12-27 13:49:22

Android開發(fā)Android應(yīng)用Button

2013-12-26 16:24:13

Android開發(fā)Android應(yīng)用Intents

2013-12-26 15:34:19

Android開發(fā)Android應(yīng)用基本概念

2013-12-27 15:31:26

Android開發(fā)Android應(yīng)用資源Resources

2013-12-26 16:46:21

2013-12-27 13:00:30

Android開發(fā)Android應(yīng)用Context Men

2013-12-27 12:42:15

Android開發(fā)Android應(yīng)用引路蜂
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩国产精品一区二区三区 | 国产成人在线一区 | 欧美三级网站 | 日韩激情一区 | 日本黄色大片免费 | av黄在线观看 | 亚洲一区日韩 | 国产亚洲一区二区三区在线观看 | 男女免费网站 | 一区二区三区四区免费在线观看 | 日日综合 | 国产精品一区二区三区99 | 99reav | 久免费视频 | 中文精品视频 | 一区二区三区在线免费观看 | 日韩最新网址 | 亚洲网站观看 | 欧美电影一区 | 天堂一区二区三区 | 波多野结衣二区 | 久久亚洲国产精品日日av夜夜 | 中文字幕精品一区二区三区精品 | 伊人精品视频 | 国产片一区二区三区 | 亚洲成人精品一区二区 | 亚洲视频精品 | 亚洲一区二区 | 91视频进入 | 久久av资源网 | 天天操天天玩 | 一区二区三区在线 | 欧 | 一区二区视频 | 成人性生交大免费 | 国产精品欧美一区二区 | 亚洲国产精品日本 | 久久99精品久久久久久国产越南 | 国产成人综合网 | 国产丝袜一区二区三区免费视频 | 五月激情久久 | 亚洲免费一区 |