Android之BaseAdapter
2014-11-20 12:05
302 查看
BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件,它是继承自接口类Adapter;BaseAdapter作为可定制界面的桥梁,非常灵活。下面我们就以listview显示图片和文字举例进行说明:
1、新建一个布局文件:添加一个Listview:activity_main作为主activity的布局文件
2、定制界面所需要的显示样式:listview_celldata
3、新建一个class 继承子BaseAdapter,重写他的方法:
4、在主activity中调用重写的BaseAdapter
1、新建一个布局文件:添加一个Listview:activity_main作为主activity的布局文件
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"> <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="wrap_content"> </ListView> </LinearLayout>
2、定制界面所需要的显示样式:listview_celldata
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal"> <ImageView android:id="@+id/ico" android:layout_width="120dp" android:layout_height="120dp" /> <LinearLayout android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/tvname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/tvdec" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> </LinearLayout>
3、新建一个class 继承子BaseAdapter,重写他的方法:
public class BaseAdapter extends android.widget.BaseAdapter { private Context context=null; public BaseAdapter(Context context) { this.context=context; } public Context getContext() { return context; } private getData[] data=new getData[]{ new getData("liye","liye",R.drawable.a), new getData("wang","wang",R.drawable.b), new getData("zhang","zhang",R.drawable.c) }; @Override public int getCount() { return data.length; } @Override public getData getItem(int position) { return data[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { LinearLayout ll=null; if (convertView!=null) { ll=(LinearLayout)convertView; } else { ll= (LinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.listview_celldata,null); } getData data= getItem(position); ImageView icon=(ImageView)ll.findViewById(R.id.ico); TextView name=(TextView)ll.findViewById(R.id.tvname); TextView dec=(TextView)ll.findViewById(R.id.tvdec); icon.setImageResource(data.icoId); name.setText(data.name); dec.setText(data.dec); return ll; } }
4、在主activity中调用重写的BaseAdapter
public class MainActivity extends Activity { private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.listview); lv.setAdapter(new com.listview.litongjie.usinglistview.BaseAdapter(this)); } }
相关文章推荐
- Android开发:BaseExpandableListAdapter的使用
- Android 中文 API (93) —— BaseExpandableListAdapter
- Android : 继承BaseAdapter对ListView进行填充
- android 适配器Adpter的使用总结 之 BaseExpandableListAdapter
- Android新浪微博开发(三)主UI的实现:用BaseAdapter做适配器的LsitView
- android 自定义adapter extends BaseAdapter,做有自己布局的listView
- Android高手进阶教程(十六)之---Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!
- Android基础类之BaseAdapter
- android 适配器Adpter的使用总结 之 BaseExpandableListAdapter
- Android ViewFlipper装载baseAdapter
- 【Android】树形菜单、扩展下拉菜单BaseExpandableListAdapter、AbsListView
- Android BaseExpandableListAdapter
- Android BaseExpandableListAdapter
- Android开发:BaseExpandableListAdapter的使用
- Android基础类之BaseAdapter
- Android 中文 API (93) —— BaseExpandableListAdapter
- Android BaseAdapter 例子
- Android高手进阶教程(十六)之---Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!
- Android高手进阶教程(十六)之---Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!
- Android高手进阶教程(十六)之---Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!