那些复杂的列表总要弄个清楚——(三)激动人心的BaseAdapter之一
来源:互联网 发布:淘宝店铺至尊会员 编辑:程序博客网 时间:2024/05/22 03:36
BaseAdapter,非常灵活,但比较复杂一些
由于很灵活,所以用途很广。
例如一些需要根据数据量调整列表项数目的情况就需要它了
特别是一跟服务器端结合,返回的数据量大小未知,数据内容也未知,这时候BaseAdapter能够很好地解决这个未定问题。
自己输入的数据用空格拆分后自动填充列表。
布局:
<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: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="com.arial.listview3.MainActivity" android:orientation="vertical"> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:dividerHeight="3dp" ></ListView> <LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal"> <EditText android:id="@+id/edit" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"></EditText> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="空格拆分"/> </LinearLayout> </LinearLayout>
public class MainActivity extends Activity {ListView lv;EditText et;Button btn;BaseAdapter adapter;String[] ss = {};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView)findViewById(R.id.lv);et = (EditText)findViewById(R.id.edit);btn = (Button)findViewById(R.id.btn);adapter = new BaseAdapter() {@Overridepublic View getView(int arg0, View arg1, ViewGroup arg2) {// TODO Auto-generated method stubTextView tv = new TextView(MainActivity.this);tv.setTextSize(20);tv.setText(ss[arg0]);return tv;}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn ss[arg0];}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn ss.length;}};lv.setAdapter(adapter);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubString s = et.getText().toString();ss = s.split(" ");int n = ss.length;//Toast.makeText(MainActivity.this, String.valueOf(n), Toast.LENGTH_SHORT).show();adapter.notifyDataSetChanged();}});}
主要看构造BaseAdapter的那段:
adapter = new BaseAdapter() {
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
TextView tv = new TextView(MainActivity.this);
tv.setTextSize(20);
tv.setText(ss[arg0]);
return tv;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return ss[arg0];
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return ss.length;
}
};
需要写四个方法,最重要的是getView方法,它返回的数据是一个View,也就是你的列表项的视图,这边只是简单的写了个TextView,可以根据需要变复杂些;
getCount方法返回的数据是int类型,它返回的是你需要构造的列表项的数目;
getItemId返回的是列表项的ID。
就酱。
- 那些复杂的列表总要弄个清楚——(三)激动人心的BaseAdapter之一
- 那些复杂的列表总要弄个清楚——(四)激动人心的BaseAdapter之二
- 那些复杂的列表总要弄个清楚——(一)ListView动态添加项
- 那些复杂的列表总要弄个清楚——(二)用SimpleAdapter做适配器
- 你可记得,那些激动人心的时刻?
- 激动人心的一刻
- 激动人心的一刻
- 激动人心的一刻
- 【Android】使用BaseAdapter实现复杂的ListView
- 使用BaseAdapter实现复杂的ListView
- 使用BaseAdapter自定义构建复杂的ListView
- 【Android】使用BaseAdapter实现复杂的ListView
- 复杂的列表视图
- BaseAdapter的三样式 IV
- 构建复杂的应用程序(三)—— 测试
- 创业-一个激动人心的想法
- CIO面临激动人心的机遇
- norains的《那些年啊,那些事——一个程序员的奋斗史 》摘录(三)
- C# 线程手册 第六章 线程调试与跟踪
- OI数学Note(基础篇)
- 【Linux】--系统vsftpd服务器安装配置(整理一)
- 8.16 恶魔城 1128
- 使用微信公众号链接进入discuz试提示"您访问的页面无手机页面" 二
- 那些复杂的列表总要弄个清楚——(三)激动人心的BaseAdapter之一
- zz-index属性
- Memory-Efficient Implementation of DenseNets
- 8.16 佳佳的魔法照片 1255
- 【正一专栏】保护孩子人人有责-评南京猥亵女童案
- 一些软件设计的原则
- border-image属性分析 [ 转载-学习 ]
- windows查看端口占用以及关闭相应的进程
- 2017.08.16【NOIP提高组】模拟赛B组总结