自定义BaseAdapter
来源:互联网 发布:淘宝儿童食品代理 编辑:程序博客网 时间:2024/05/22 15:10
写入自定义BaseAdapter
<span style="font-size:12px;">import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;public abstract class BaseListAdapter<T> extends BaseAdapter{protected Context mContext;protected List<T> mValues;protected LayoutInflater mInflater;public BaseListAdapter(Context mContext, List<T> mValues) {super();this.mContext = mContext;this.mValues = mValues;mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);}public Context getContext() {return mContext;}@Overridepublic int getCount() {// TODO Auto-generated method stubif (mValues != null) {return mValues.size();}return 0;}@Overridepublic T getItem(int position) {// TODO Auto-generated method stubif (position > getCount() - 1 || mValues == null) {return null;}return mValues.get(position);}@Overridepublic long getItemId(int potion) {// TODO Auto-generated method stubreturn potion;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubreturn getItemView(convertView, position);}protected abstract View getItemView(View convertView, int position);public void update(List<T> values) {mValues = values;notifyDataSetInvalidated();notifyDataSetChanged();}}</span>两个布局如下:
activity_main.xml布局
<span style="font-size:12px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </ListView></RelativeLayout></span>
main.xml布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="10dp" > <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="姓名:" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/tv1" android:text="" /> <TextView android:id="@+id/tv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/tv1" android:text="年龄:" /> <TextView android:id="@+id/tv_age" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/tv2" android:layout_alignBottom="@+id/tv2" android:layout_toRightOf="@+id/tv2" android:text="" /> <TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/tv2" android:text="性别:" /> <TextView android:id="@+id/tv_sex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/tv3" android:layout_alignBottom="@+id/tv3" android:layout_alignLeft="@+id/tv_age" android:text="" /></RelativeLayout>主要内容MainActivity如下:
<span style="font-size:12px;">import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends Activity {private MainAdapter adapter;private List<MainEntity> list ;private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listView1); list = new ArrayList<MainEntity>(); MainEntity mainEntity =new MainEntity(); mainEntity.setName("赵三"); mainEntity.setSex("男"); mainEntity.setAge("25"); list.add(mainEntity); MainEntity mainEntity1 =new MainEntity(); mainEntity1.setName("张平"); mainEntity1.setSex("男"); mainEntity1.setAge("27"); list.add(mainEntity1); MainEntity mainEntity2 =new MainEntity(); mainEntity2.setName("王红"); mainEntity2.setSex("女"); mainEntity2.setAge("20"); list.add(mainEntity2); adapter = new MainAdapter(MainActivity.this, list); listView.setAdapter(adapter); } private class MainAdapter extends BaseListAdapter<MainEntity> {public MainAdapter(Context mContext, List<MainEntity> mValues) {super(mContext, mValues);// TODO Auto-generated constructor stub}@Overrideprotected View getItemView(View convertView, int position) {// TODO Auto-generated method stubViewHolder viewHolder =null;if (convertView == null) {viewHolder = new ViewHolder();convertView = mInflater.inflate(R.layout.main, null);viewHolder.tv_name = (TextView) convertView.findViewById(R.id.tv_name);viewHolder.tv_age = (TextView) convertView.findViewById(R.id.tv_age);viewHolder.tv_sex = (TextView) convertView.findViewById(R.id.tv_sex);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}MainEntity entity = getItem(position);viewHolder.tv_name.setText(entity.name);viewHolder.tv_sex.setText(entity.sex);viewHolder.tv_age.setText(entity.age);return convertView;} class ViewHolder{TextView tv_name;TextView tv_age;TextView tv_sex;} }}</span>
显示效果如图:
0 0
- 自定义BaseAdapter
- 自定义BaseAdapter
- 自定义BaseAdapter
- 自定义BaseAdapter
- 自定义BaseAdapter
- BaseAdapter数据刷新,自定义BaseAdapter
- android自定义 BaseAdapter
- android AutoCompleteTextView 自定义BaseAdapter
- 自定义Adapter:BaseAdapter
- Android自定义适配器BaseAdapter
- 实现自定义的BaseAdapter
- android AutoCompleteTextView 自定义BaseAdapter
- 自定义BaseAdapter[转]
- BaseAdapter自定义实现代码
- 自定义BaseAdapter[转]
- android AutoCompleteTextView 自定义BaseAdapter
- 自定义PopupWindow+BaseAdapter+Anim
- android 自定义适配器BaseAdapter
- 外来类的注入
- IOS正确解决隐藏nabber后push、pop闪黑问题
- windows安装mysql 遇到错误193的解决办法
- php调用mysql,中文显示??怎么办
- velocity:在eclipse和ultraedit中增加对vm脚本语法的高亮显示支持
- 自定义BaseAdapter
- VS2013打包程序后在其他电脑显示(null)不是有效的win32应用程序的问题
- iOS应用程序之间数据共享
- 特殊字符的处理
- UVA-11401 Triangle Counting(数学优化)
- C/C++复习(6):预处理器
- POJ 2378 Tree Cutting (简单树形DP、删点)
- iOS开发Webview,加载html代码图片适配
- Mysql 相邻两行记录某列的差值