ListView 的标准写法
来源:互联网 发布:社交软件源码 编辑:程序博客网 时间:2024/05/05 09:42
MainActivity
public class MainActivity extends Activity { private ListView lv; private MyAdapter myAdapter; private List<News> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); processData(); } /** * 找到对应的子控件 */ private void initView() { lv = (ListView) findViewById(R.id.lv); } /** * 模拟:请求服务器获取数据、解析数据的结果,即一个list集合 */ private void initData() { list = new ArrayList<News>(); list.add(new News(R.drawable.iv1, "吉祥如意", "桃花潭水深千尺")); list.add(new News(R.drawable.iv2, "心想事成", "明月几时有")); list.add(new News(R.drawable.iv3, "国泰民安", "把酒问青天")); list.add(new News(R.drawable.iv4, "虎虎生威", "故人西辞黄鹤楼")); list.add(new News(R.drawable.iv5, "将进酒", "杯莫停,干了这杯酒")); list.add(new News(R.drawable.iv6, "恭喜发财", "锄禾日当午")); list.add(new News(R.drawable.iv7, "三字经", "今夕是何年")); list.add(new News(R.drawable.iv8, "陶渊明", "采菊东篱下")); list.add(new News(R.drawable.iv9, "田园诗人", "悠然见南山")); list.add(new News(R.drawable.iv10, "爱莲说", "往来无白丁")); } /** * 处理从服务器请求来的数据 */ private void processData() { myAdapter = new MyAdapter(getApplication(), list); lv.setAdapter(myAdapter); }}
MyAdapter
public class MyAdapter extends BaseAdapter { private Context context; private List<News> list; MyAdapter(Context context, List list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; // 把条目lv_item打气为view对象,减少findViewById的次数 if (convertView == null) { convertView = View.inflate(context, R.layout.lv_item, null); holder = new ViewHolder(); holder.iv = (ImageView) convertView.findViewById(R.id.iv); holder.title = (TextView) convertView.findViewById(R.id.title); holder.desc = (TextView) convertView.findViewById(R.id.desc); convertView.setTag(holder); } else { // 复用历史缓存view对象 holder = (ViewHolder) convertView.getTag(); } // 用list里对应对象的数据来填写对应的控件 News news = list.get(position); holder.iv.setBackgroundResource(news.getImage()); holder.title.setText(news.getTitle()); holder.desc.setText(news.getDesc()); return convertView; } /** * ViewHolder类用来管理item布局里的子控件 */ class ViewHolder { ImageView iv; TextView title; TextView desc; }}
JavaBean
public class News { private int image; private String title; private String desc; public News(int image, String title, String desc) { super(); this.image = image; this.title = title; this.desc = desc; } public int getImage() { return image; } public void setImage(int image) { this.image = image; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; }}
布局文件
<RelativeLayout 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.example.listview_demo.MainActivity" > <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView></RelativeLayout>
item
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" > <ImageView android:id="@+id/iv" android:layout_marginLeft="5dp" android:layout_width="140dp" android:layout_height="80dp" android:background="@drawable/ic_launcher" /> <TextView android:id="@+id/desc" android:textColor="@android:color/black" android:layout_marginLeft="5dp" android:layout_width="130dp" android:layout_height="wrap_content" android:layout_below="@id/iv" android:text="描述描述描述描述描述描述描述描述" /> <TextView android:id="@+id/title" android:textColor="@android:color/black" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/desc" android:layout_alignParentRight="true" android:layout_marginRight="5dp" android:text="标题标题" android:textAppearance="?android:attr/textAppearanceLarge" /></RelativeLayout>
效果
1 0
- ListView 的标准写法
- ListView的标准写法
- 标准dll的写法
- GridView的标准写法
- 标准类的写法
- SurfaceView的标准写法
- listView的高级写法
- ListView适配器的写法
- 标准Sql语句的写法
- select 语句的标准写法
- 标准的HTML头部写法
- 标准的HTML头部写法
- 一个pool的写法,标准
- Android Fragment的标准写法
- 自定义Application的标准写法
- Jquery ajax的标准写法
- Android Fragment的标准写法
- 日语音的标准写法
- 微分方程(1)---微分方程的数值解法
- Add Again(重复元素排序)
- 带外数据OOB与紧急模式URG
- JavaScript实现禁用键盘和鼠标的点击事件
- hdu 5234 Happy birthday(格子图上的01背包)
- ListView 的标准写法
- C++继承时派生类与基类有同名函数时如何分别引用
- LeetCode——Palindrome Number
- 自己动手解Json!(IOS利用分治法解析Json)(一)
- Eclipse里面找不到DatabaseExplorer,怎么办?
- 文件上传与下载(二)smartupload
- xml 配置说明
- 慢一点,再慢一点
- jquery mobile的tap()事件以及jQuery事件的delegate()方法