Android中怎么通过自定义Adapter显示列表(adapter,android,移动开发)

时间:2024-05-03 05:49:25 作者 : 石家庄SEO 分类 : 移动开发
  • TAG :

在res\layout目录下创建一个 activitylist.xml。内容如下:

Android中怎么通过自定义Adapter显示列表

这次我们不从AndroidManifest.xml中读取Activity列表,而是使用String Array资源。在res\value\string.xml 中添加下列Array资源:

<string-arrayname=”activity_name”><item>Bezier</item><item>Brush</item><item>Colors</item><item>Font</item><item>Image</item><item>Path</item><item>Pen</item><item>Shape</item><item>Transform</item></string-array><string-arrayname=”activity_info”><item>Bezier</item><item>Pattern,Gradients</item><item>Colors</item><item>FontDemo,FontTypes</item><item>DrawMap,JumbleImage,SeeThroughImage</item><item>Polys,Paths</item><item>Lines,Dashes,LineCap,LineJoin</item><item>Oval,Pear,Shape2DDemo</item><item>Transform</item></string-array>

定义了这些资源后,可以在程序中使用自定义Adapter来显示列表:

classActivityInfo{inticonIndex;StringactivityName;StringactivityInfo;}classActivityInfoAdapterextendsArrayAdapter<ActivityInfo>{intresource;publicActivityInfoAdapter(Contextcontext,intresourceId,List<ActivityInfo>objects){super(context,resourceId,objects);resource=resourceId;}@OverridepublicViewgetView(intposition,ViewConvertView,ViewGroupparent){LinearLayoutactivityInfoView;ActivityInfoactivityInfo=getItem(position);Stringactivity_Name=activityInfo.activityName;Stringactivity_Info=activityInfo.activityInfo;inticonIndex=activityInfo.iconIndex;if(ConvertView==null){activityInfoView=newLinearLayout(getContext());Stringinflater=Context.LAYOUT_INFLATER_SERVICE;LayoutInflatervi;vi=(LayoutInflater)getContext().getSystemService(inflater);vi.inflate(resource,activityInfoView,true);}else{activityInfoView=(LinearLayout)ConvertView;}TextViewactivity_NameView=(TextView)activityInfoView.findViewById(R.id.activityName);TextViewactivity_InfoView=(TextView)activityInfoView.findViewById(R.id.activityInfo);ImageViewiconView=(ImageView)activityInfoView.findViewById(R.id.iconImage);activity_NameView.setText(activity_Name);activity_InfoView.setText(activity_Info);iconView.setImageResource(iconIndex);returnactivityInfoView;}}publicclassAndroidGraphics2DTutorialextendsListActivity{privateArrayList<ActivityInfo>activityInfos=newArrayList<ActivityInfo>();privateActivityInfoAdapteraa;privatefinalstaticStringpackgeName="com.pstreets.graphics2d";@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);Resourcesres=getResources();String[]activity_Names=res.getStringArray(R.array.activity_name);String[]activity_Infos=res.getStringArray(R.array.activity_info);for(inti=0;i<activity_Names.length;i++){ActivityInfoactivityInfo=newActivityInfo();activityInfo.activityName=activity_Names[i];activityInfo.activityInfo=activity_Infos[i];activityInfo.iconIndex=R.drawable.icon1+i;activityInfos.add(activityInfo);}aa=newActivityInfoAdapter(this,R.layout.activitylist,activityInfos);setListAdapter(aa);}@OverrideprotectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){ActivityInfoactivityInfo=(ActivityInfo)l.getItemAtPosition(position);Intentintent=newIntent();intent.setClassName(this,packgeName+".example."+activityInfo.activityName);startActivity(intent);}}

类ActivityInfo定义列表每个元素的Data Model,为Activity的Icon资源ID,Activity Name以及Activity Info.

类ActivityInfoAdapter为自定义Adapter,关键的是public View getView(int position,View ConvertView,ViewGroup parent)。这个函数返回用来显示没个类别元素的View的示例。例子中为activitylist.xml 对应的Layout。

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Android中怎么通过自定义Adapter显示列表的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Android中有哪些常用组件下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18