Android BaseAdapter
来源:互联网 发布:10款马自达3轮毂数据 编辑:程序博客网 时间:2024/05/16 10:52
BaseAdapter是Android应用程序中经常用到的基础数据适配器,其主要用途为将一组数据传递到ListView,Spinner,GridView等UI组件。BaseAdapter对于前面提到的三个UI组件来说是万能的,ListView、Spinner、GridView各自都有自己的适配器,但是BaseAdapter对于它们是通用的。比如我们经常使用的ListView的SimpleAdapter是继承自BaseAdapter的。
下面就来看一看BaseAdapter的用法:
使用BaseAdapter时,我们常写一个类来继承它。因为BaseAdapter是一个抽象类,所以要在类中实现它的方法。
public class MyAdapter extends BaseAdapter{ private Context context; private List<String> listBase; public MyAdapter(Context context,ArrayList<String> listBase){ this.context = context; this.listBase = listBase; } @Override public int getCount() { return listBase.size(); } @Override public Object getItem(int i) { return listBase.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder; if (view == null){ view = View.inflate(context,R.layout.list_item_view,null); viewHolder = new ViewHolder(); viewHolder.textView = (TextView) view.findViewById(R.id.textView1); view.setTag(viewHolder); }else { viewHolder = (ViewHolder) view.getTag(); } viewHolder.textView.setText(listBase.get(i)); return view; } public class ViewHolder{ public TextView textView; } }
子项布局文件:
list_item_view.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout></LinearLayout>
下面是整体代码:
MainActivity.java
public class MainActivity extends Activity { ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.list_view); List<String> listData = new ArrayList<String>(); for (int i =0;i<100;i++){ listData.add("Item"+i); } listView.setAdapter(new MyAdapter(this, (ArrayList<String>) listData)); } public class MyAdapter extends BaseAdapter{ private Context context; private List<String> listBase; public MyAdapter(Context context,ArrayList<String> listBase){ this.context = context; this.listBase = listBase; } @Override public int getCount() { return listBase.size(); } @Override public Object getItem(int i) { return listBase.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder; if (view == null){ view = View.inflate(context,R.layout.list_item_view,null); viewHolder = new ViewHolder(); viewHolder.textView = (TextView) view.findViewById(R.id.textView1); view.setTag(viewHolder); }else { viewHolder = (ViewHolder) view.getTag(); } viewHolder.textView.setText(listBase.get(i)); return view; } public class ViewHolder{ public TextView textView; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
0 0
- Android --- BaseAdapter
- Android BaseAdapter
- android BaseAdapter
- Android BaseAdapter
- Android BaseAdapter
- Android BaseAdapter
- Android BaseAdapter
- Android BaseAdapter 例子
- Android BaseAdapter应用
- Android ListView理解,BaseAdapter
- 关于Android中的BaseAdapter
- android自定义 BaseAdapter
- Android ListView理解,BaseAdapter
- Android中的BaseAdapter使用说明
- Android------------BaseAdapter示例介绍
- Android ViewFlipper装载baseAdapter
- Android ListView BaseAdapter 分析
- Android Baseadapter 中的convertView
- XINLINX VC707 的学习
- Spring事务配置的五种方式
- 菜单快捷键在字母前加上&就好。
- Sublime Markdown 科技短文写作环境搭建
- 黑马程序员-Java基础学习-IO流
- Android BaseAdapter
- APPframework安装遇到的问题和解决方法
- 线段树入门理解
- 美团面试题 输入任意表达式输出结果
- Alpha-expansion and Alpha-beta-swap Algorithm Flow
- 漫步云中网络
- 切西瓜
- 一个好的开端
- 网件NETGEAR WNDR4300 V2刷石像鬼固件OPENWRT