Android BaseAdapter基本使用及数据刷新

1. 首先是Adapter适配器类:

MyListAdapter.java

public abstract class MyListAdapter extends BaseAdapter {    private Context context;    private int listItemId = 0;    public MyListAdapter(Context context, int listItemId) {        super();        this.context = context;        this.listItemId = listItemId;    }    public Context getContext() {        return context;    }    private List list = new ArrayList();    public void add(T item) {        list.add(item);        notifyDataSetChanged();    }    public void remove(int position) {        list.remove(position);        notifyDataSetChanged();    }    public void removeLast() {        remove(getCount() - 1);    }    @Override    public int getCount() {        return list.size();    }    @Override    public T getItem(int position) {        return list.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        if(convertView == null) {            convertView = LayoutInflater.from(getContext()).inflate(listItemId, null);            System.out.println("convertView=null");        }        initListItem(position, convertView, parent);        return convertView;    }    protected abstract void initListItem(int position, View listItem, ViewGroup parent);}
主界面布局文件:

activity_main.xml

<LinearLayout 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"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <ListView        android:id="@android:id/list"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_weight="1" />    <LinearLayout         android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        >        <Button             android:id="@+id/btn_add"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="add"            />        <Button             android:id="@+id/btn_remove"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="remove"            android:layout_weight="1"            />    LinearLayout>LinearLayout>
然后是业务代码实现:

MainActivity.java

public class MainActivity extends ListActivity implements OnClickListener{    private MyListAdapter adapter;    private int index = 0;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        adapter = new MyListAdapter(MainActivity.this,                 android.R.layout.simple_list_item_1) {            @Override            protected void initListItem(int position, View listItem, ViewGroup parent) {                ((TextView)listItem).setText(getItem(position));                System.out.println(getItem(position));            }        };        setListAdapter(adapter);        for (index = 0; index < 5; index++) {            adapter.add("eoe" + index);        }        findViewById(R.id.btn_add).setOnClickListener(this);        findViewById(R.id.btn_remove).setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {        case R.id.btn_add:            index ++;            adapter.add("eoe" + index);            break;        case R.id.btn_remove:            adapter.removeLast();            break;        }    }}

更多相关文章

  1. 安卓(Android)九宫格布局介绍
  2. android BaseAdapter 自定义适配器 BaseAdapter基类抽取 二
  3. 【android开发】之【android动态布局方法总结】
  4. 【android】查看软件布局神器Hierarchy Viewer
  5. 帧布局
  6. Android 布局 优先显示右侧的控件
  7. Android 自动换行流式布局的RadioGroup
  8. android view相对于根布局的坐标获取
  9. LinearLayout(线性布局)

随机推荐

  1. Android 快速使用 string.xml 中的array
  2. android 背景透明
  3. android得到version name
  4. HTTP
  5. android cordova微信分享和QQ分享
  6. android手把手教你开发launcher(二)——列
  7. android之PopUpWindow使用实例
  8. android 获取未安装apk的icon、name等信
  9. android 短信群发
  10. Android 创建菜单