安卓开发之基于ListActivity的LIstView的用法
来源:互联网 发布:windows 10 iso bt 编辑:程序博客网 时间:2024/05/16 19:03
安卓开发中ListView是最常用的,也是最重要的用法之一,作为一个刚刚步入安卓开发之旅的初学者,ListView的熟练运用是必备技能之一。下面是个人学习过程中的一个实例。
package com.example.admin.listviewmodel;import android.app.ListActivity;import android.os.Bundle;//继承ListActivity,直接为其指定adapter即可,// activity继承了ListActivity,那么布局文件里面就一定要实例化一个listview的//并且listview的id attribute必须为 android:id="@android:id/list"public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListViewAdapter listViewAdapter=new ListViewAdapter(this);//将context传递过去 setListAdapter(listViewAdapter);//指定adapter }}
<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" tools:context=".MainActivity"> <ListView android:id="@android:id/list"必须为 android:id="@android:id/list",否则会报错
android:layout_width="fill_parent"android:layout_height="wrap_content" > </ListView></LinearLayout>
package com.example.admin.listviewmodel;import android.annotation.TargetApi;import android.content.Context;import android.os.Build;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import java.util.ArrayList;import java.util.List;/** * Created by Admin on 2015/9/16. */public class ListViewAdapter extends BaseAdapter { private Context context; //下面的getView要用到context public ListViewAdapter (Context context){ this.context=context; addMessage(); } public Context getContext() { return context; } @Override public int getCount() { return messageList.size(); } @Override public Object getItem(int position) { return messageList.get(position); } @Override public long getItemId(int position) { return position;//只要保证唯一性即可,位置就是唯一性的 } //getView是最重要的 @TargetApi(Build.VERSION_CODES.JELLY_BEAN) @Override public View getView(int position, View convertView, ViewGroup parent) { //避免每一次都获取布局资源消耗较大 ViewHolder v; if (convertView==null){ convertView= LayoutInflater.from(getContext()).inflate(R.layout.itemlayout,null); v=new ViewHolder(); v.imageView= (ImageView) convertView.findViewById(R.id.tvimage); v.textView= (TextView) convertView.findViewById(R.id.tvtext); convertView.setTag(v); }else { v=(ViewHolder)convertView.getTag(); } Message msg= (Message) getItem(position); v.getImageView().setBackgroundResource(R.mipmap.ic_launcher); v.getTextView().setText(msg.getName()); return convertView; } List<Message> messageList=new ArrayList<Message>(); public void addMessage(){ for (int i = 0; i <20 ; i++) { this.messageList.add(i,new Message("---syd--"+i)); notifyDataSetChanged();////数据有改变要更新列表 } } public void clear(){ messageList.clear(); notifyDataSetChanged();////数据有改变要更新列表 } private static class ViewHolder{ private ImageView imageView=null; private TextView textView=null; public ImageView getImageView() { return imageView; } public TextView getTextView() { return textView; } }}
package com.example.admin.listviewmodel;import android.graphics.Bitmap;import android.graphics.drawable.Drawable;/** * Created by Admin on 2015/9/16. */public class Message { private String name; public Message(String name){ this.name=name; } public String getName() { return name; }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="20dp">为每条数据之间指定间距 <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tvimage" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tvtext" android:textAppearance="?android:textAppearanceLarge"/></LinearLayout>运行后的效果:
0 0
- 安卓开发之基于ListActivity的LIstView的用法
- 安卓-ListActivity的使用
- Android之ListView的用法(ListActivity)——系列(7)
- ListActivity类的用法
- 【Android】安卓学习笔记之ListView的简单用法
- ListActivity 中 ListView 的使用
- ListActivity中listview的获取
- listActivity和ExpandableListActivity的用法
- 安卓开发之ListView
- android 之 ListActivity & ListView
- ListActivity 之 ListView 研究
- ListView 之 ListActivity 2
- 安卓开发-ListView的使用
- 安卓开发ListView的运用
- Android之 ListActivity 的使用和在 ListView中添加图片文字(ListActivity与Activity的区别)
- Android中ListView的使用(不用ListActivity)
- ListActivity ListView Adapter 之间的关系
- Android关于ListView的总结--使用ListActivity
- mysql 中如何取得汉字字段的各汉字首字母, 并根据首字母进行查询
- OkHttp使用教程
- [Elasticsearch] 多字段搜索 (二) - 最佳字段查询及其调优
- 安装protractor进行前端自动化测试-web ui自动化测试
- JqueryMobile+HTML5+JS
- 安卓开发之基于ListActivity的LIstView的用法
- mybatis学习总结(—)
- oracle 锁机制
- 去除arrayList集合里面同样的元素
- [Elasticsearch] 多字段搜索 (三) - multi_match查询和多数字段
- 编写一个无法卸载的App – 设备管理器漏洞
- C内存对齐
- web集群之二 heartbeat实现ip漂移
- 关于 No operations allowed after connection closed.错误