扩展BaseAdapter实现不存储列表项的ListView
2015-07-30 23:19
288 查看
扩展BaseAdapter可以取得对Adapter最大的控制权:程序要穿件多少个列表项,每个列表项的组件都由开发者来决定。
扩展一个BaseAdapter需要重写如下四个方法:
<>getCount():该方法的返回值控制该Adapter将会包含多少个列表项。
<>getItem(int position):该方法的返回值决定第position处的列表项内容。
<>getItemId(int position):该方法的返回值决定第position处的列表项的ID。
<>getView(int position, View convertView , ViewGroup parent):该方法的返回值决定第position处的列表项组件。
示例java代码:
布局xml代码:
显示结果:
扩展一个BaseAdapter需要重写如下四个方法:
<>getCount():该方法的返回值控制该Adapter将会包含多少个列表项。
<>getItem(int position):该方法的返回值决定第position处的列表项内容。
<>getItemId(int position):该方法的返回值决定第position处的列表项的ID。
<>getView(int position, View convertView , ViewGroup parent):该方法的返回值决定第position处的列表项组件。
示例java代码:
public class MainActivity extends Activity { ListView myList; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myList = (ListView) findViewById(R.id.myList); BaseAdapter adapter = new BaseAdapter() { @Override public int getCount() { // 指定一共包含40个选项 return 40; } @Override public Object getItem(int position) { return null; } // 重写该方法,该方法的返回值将作为列表项的ID @Override public long getItemId(int position) { return position; } // 重写该方法,该方法返回的View将作为列表框 @Override public View getView(int position , View convertView , ViewGroup parent) { // 创建一个LinearLayout,并向其中添加2个组件 LinearLayout line = new LinearLayout(MainActivity.this); line.setOrientation(0); ImageView image = new ImageView(MainActivity.this); image.setImageResource(R.drawable.ic_launcher); TextView text = new TextView(MainActivity.this); text.setText("第" + (position +1 ) + "个列表项"); text.setTextSize(20); text.setTextColor(Color.RED); line.addView(image); line.addView(text); // 返回LinearLayout实例 return line; } }; myList.setAdapter(adapter); } }
布局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" > <ListView android:id="@+id/myList" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>
显示结果:
相关文章推荐
- JAVA设计模式——代理模式
- !HDU 5317 求区间里两个数的质因数个数的gcd的最大值-预处理
- eclipse的Toggle Block Selection Mode功能---列模式
- [2015-07-30] python011
- 数据挖掘领域十大经典算法初探
- mysql协议学习(一)——基本数据类型
- NOIP2010提高组--机械翻译
- DialogFragment 使用与友好交互
- java并发二
- 最近学习hadoop遇到的问题!虽然很小但是很恶心!同时求指教!!!
- this 关键字的应用
- MySql免安装版l配置方法
- Java操作串口
- Java操作串口 分类: Java 2015-07-30 23:18 11人阅读 评论(0) 收藏
- CSS常用布局实现方法
- java作业
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- CSS常用布局实现方法
- 每天一个linux命令(14):less 命令
- 【黑马程序员】Java笔记——抽象类: abstract