ListView使用详解
来源:互联网 发布:tightvnc 安卓2g网络 编辑:程序博客网 时间:2024/05/29 12:32
ListView使用详解
ListView 基础用法
BaseAdapter的使用
ViewHolder模式
效果图
MainActivity布局
- 在LinearLayout下放了一个 ListView
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.disver.edward.demo.MainActivity"> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent"></ListView></LinearLayout>
- Listview子项目布局文件
<?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"><TextView android:layout_gravity="center_horizontal" android:paddingTop="20dp" android:paddingBottom="20dp" android:textAlignment="center" android:id="@+id/text" android:textColor="#000000" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="wrap_content" /></LinearLayout>
MainActivity.java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initUI(); //初始化UI界面 initData(); //初始化数据 myAdapater adapater = new myAdapater(array); //初始化适配器 listView.setAdapter(adapater); //设置适配器 initEvent(); //设置子项目单击事件 }
- 控件映射的方法
private void initUI() { listView = (ListView) findViewById(R.id.listview); //映射控件到Activity }
- 对Listview设置监听
private void initEvent() { //设置项目点击事件监听 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {/*position即Item所在位置*/ Toast.makeText(getApplicationContext(),"第"+position+"个列表项目",Toast.LENGTH_SHORT).show(); } }); }
- 初始化数据
private void initData() { for (int i = 0;i<20;i++){ array.add("第"+i+"个项目"); } }
- 下面的Adapater是最关键的部分
class myAdapater extends BaseAdapter{ private List<String> DataArray; /*数据存放的数组*/ private LayoutInflater layoutInflater; //布局解析器 /*实现构造方法*/ public myAdapater(List<String> dataArray) { DataArray = dataArray; } /*重写了各种方法*/ @Override public int getCount() { return DataArray.size(); //返回数据集的长度 } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return position; } //重写getView方法 *核心方法 @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; //使用ViewHolder模式提高效率 if (convertView==null){ //如果当前视图为空则进行视图的映射 convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.list_layout, null); //解析布局文件 viewHolder = new ViewHolder(); //初始化ViewHolder viewHolder.textView = (TextView) convertView.findViewById(R.id.text); //映射空间到当前视图 convertView.setTag(viewHolder); }else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.textView.setText(DataArray.get(position)); //设置数据 return convertView; //返回当前视图 } /*内部类放置Listview用到的控件*/ class ViewHolder{ TextView textView; } }
阅读全文
0 0
- ListView使用详解
- ListView使用详解
- Android ListView使用详解
- ListView使用详解
- ListView的使用详解
- Android ListView使用详解
- Android ListView使用详解
- Android ListView使用详解
- android ListView使用详解
- ListView使用详解
- ListView使用详解
- OPhone中的ListView使用详解
- ListView使用详解,listActivity使用方法
- OPhone中的ListView使用详解
- ListView嵌套GridView使用详解
- android ListView使用详解&事例
- ListView嵌套GridView使用详解
- ListView和Adapter使用详解
- 成年人学习东西的细节(罗辑思维)
- 中国投资者砸重金在美国购买学区房!是因为...
- Java调用Matlab生成的函数,参数为矩阵怎么传递
- CentOS7 磁盘管理及LVM配置
- 通用变频器的主电路结构
- ListView使用详解
- Python特殊语法:filter、map、reduce、lambda
- java发送邮件(解决不被被当成垃圾邮件)
- Plaase select at least one of the signature versions to use 问题的解决
- windows下如何启用mysql慢查询日志
- weui 上传图片
- javascript前端XML格式正确性验证方法
- Android TextView的移除不完全解决办法
- VMwareWorkstation10 中安装Centos6.5(64位)图文并茂详细步骤