ListView的使用
来源:互联网 发布:js 模块化编程 入门 编辑:程序博客网 时间:2024/06/08 16:01
1.定义每个列表项item_layout.xml
<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="#f4ffd9" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="72dp" android:layout_height="29dp" android:text="标题" android:textSize="20sp" android:id="@+id/buttonLook" android:layout_x="38dp" android:background="@drawable/btton_bg" android:layout_y="167dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Medium Text" android:id="@+id/textViewItemData" android:layout_x="169dp" android:layout_y="25dp" android:textSize="20dp" /> <TextView android:layout_width="150dp" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Medium Text" android:id="@+id/textViewDecription" android:layout_x="169dp" android:layout_y="62dp" android:lines="4" android:ellipsize="end" /> <ImageView android:layout_width="150dp" android:layout_height="140dp" android:adjustViewBounds="true" android:maxWidth="150dp" android:maxHeight="150dp" android:id="@+id/imageViewPicture" android:layout_x="5dp" android:layout_y="18dp" android:src="@mipmap/f0" /></AbsoluteLayout>2.包装数据类
package com.gst.thinkpad.helloworld;import java.util.Date;/** * Created by ThinkPad on 2015/9/16. */public class News { private String title; private String description; private String orderInfo; private Date date; private String urlPath; private int imageID; public int getImageID() { return imageID; } public void setImageID(int imageID) { this.imageID = imageID; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getOrderInfo() { return orderInfo; } public void setOrderInfo(String orderInfo) { this.orderInfo = orderInfo; } public String getUrlPath() { return urlPath; } public void setUrlPath(String urlPath) { this.urlPath = urlPath; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; }}
3.继承BaseAdapter,并实现相应的抽象方法
package com.gst.thinkpad.helloworld;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.webkit.WebView;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import com.android.volley.RequestQueue;import com.android.volley.Response;import com.android.volley.VolleyError;import com.android.volley.toolbox.ImageRequest;import com.android.volley.toolbox.Volley;import java.util.List;/** * Created by ThinkPad on 2015/9/22. */public class ListAdapter extends BaseAdapter{ private Context mContext; private List<News> mListData; private RequestQueue mQueue; public ListAdapter(Context mContext, List<News> mListData) { this.mContext = mContext; this.mListData = mListData; this.mQueue= Volley.newRequestQueue(mContext); } @Override public int getCount() { return mListData.size(); } @Override public Object getItem(int position) { return mListData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { final News news=mListData.get(position); final ViewHolder viewHolder; if (convertView==null){ viewHolder=new ViewHolder(); LayoutInflater inflater=LayoutInflater.from(mContext); convertView=inflater.inflate(R.layout.item_layout,null); viewHolder.dataTV=(TextView)convertView.findViewById(R.id.textViewItemData); viewHolder.descriptionTV=(TextView)convertView.findViewById(R.id.textViewDecription); viewHolder.lookBT=(Button)convertView.findViewById(R.id.buttonLook); viewHolder.imageIV=(ImageView)convertView.findViewById(R.id.imageViewPicture); convertView.setTag(viewHolder); }else { viewHolder=(ViewHolder)convertView.getTag(); } viewHolder.dataTV.setText(news.getTitle()); viewHolder.descriptionTV.setText(news.getDescription()); viewHolder.lookBT.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(mContext, WebActivity.class); intent.putExtra("web_url", news.getUrlPath()); mContext.startActivity(intent); } }); viewHolder.imageIV.setImageResource(news.getImageID()); //创建图片请求 ImageRequest imageRequest=new ImageRequest( "http://img4.douban.com/view/photo/photo/public/p2266866059.jpg", new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap bitmap) { viewHolder.imageIV.setImageBitmap(bitmap); } }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { viewHolder.imageIV.setImageBitmap(null); } } ); //加入请求队列 mQueue.add(imageRequest); return convertView; } class ViewHolder{ TextView dataTV; TextView descriptionTV; Button lookBT; ImageView imageIV; }}3.在主工程中准备数据,并绑定listview
package com.gst.thinkpad.helloworld;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class ListViewActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_view); //标题列表 String[] titles=new String[]{"黄金月饼", "创意月饼", "奶黄月饼", "水晶月饼", "紫薯冰皮月饼", "芝麻月饼", "鲜肉月饼", "火腿月饼", "梦幻冰皮月饼", "红曲绿豆千层酥月饼" }; //图片列表 /* int[] imageID=new int[]{R.mipmap.黄金月饼,R.mipmap.创意月饼,R.mipmap.奶黄月饼, R.mipmap.水晶月饼,R.mipmap.紫薯冰皮月饼,R.mipmap.芝麻月饼,R.mipmap.鲜肉月饼 ,R.mipmap.火腿月饼,R.mipmap.梦幻冰皮月饼,R.mipmap.红曲绿豆千层酥月饼};*/ //网址列表 String[] urls=new String[]{"http://www.meishij.net/zuofa/huangjinyuebing_2.html", "http://www.meishij.net/zuofa/chuangyiyuebing.html", "http://www.meishij.net/zuofa/naihuangyuebing_4.html" , "http://www.meishij.net/zuofa/shuijingyuebing_3.html" , "http://www.meishij.net/zuofa/zishubingpiyuebing_5.html" , "http://www.meishij.net/zuofa/zhimayuebing.html" , "http://www.meishij.net/zuofa/xianrouyuebing_6.html" , "http://www.meishij.net/zuofa/huotuiyuebing_1.html" , "http://www.meishij.net/zuofa/menghuanbingpiyuebing.html" , "http://www.meishij.net/zuofa/hongqulvdouqiancengsuyuebing.html" , }; String[] descriptions=new String[]{"黄金月饼制作是健康的。最基础的工艺就是蒸。零厨艺的人也一下搞定的。我是根据家人的口味、营养、喜欢的食材来、\n" + "选取做什么味道的月饼。", "中秋节快到了,我想着用我自己的方法去做月饼", "一直想做奶黄月饼,只是因为有一包吉士粉。一直想着怎么把它解决掉,这下可好,一下子去掉一半。", "水晶月饼,亮晶晶的,冰清玉洁,讨人喜欢!水晶月饼,Q弹的口感,可爱的造型,讨小孩欢心!水晶月饼没有烤箱也能做的,\n" + "是忙碌妈妈的最佳选择,只需要花一点点时间,百分百能做成功的月饼!", "月饼季\n" + "你懂的\n" + "好吃健康 低热量\n" + "应景的月饼做起........", "喜欢吃月饼,但是没有转化糖浆和枧水,所以迟迟不敢动手,直到有一天无意中拿起孩子的“综合实践活动”书,\n" + "还真有月饼的制作方法,里面用到的是白糖浆和碱水,我把原方改变了一下,直接用白糖,\n" + "加了酵母和碱,自我感觉还不错······", "有了烤箱之后,就是尝试做各种吃的来,快中秋了,就做个月饼大家尝尝吧。\n", "不经意间做了个苏式月饼的火腿馅,又不能做苏式月饼,怎么办呢?给改良改良勉强做成广式月饼吧。", "晶莹剔透的冰皮,五颜六色的样式,清甜沁心的果酱馅料,冰凉软糯的口感。一提起冰皮月饼,可能你会多多少少想到以上这些形容词。\n", "今年的月饼我自己做了好多种,真的做伤了,今天上传个红曲绿豆千层酥小月饼。今年的月饼到今天为止算告一段落了,\n" + "完美收关。哈哈,很喜欢这种一层一层的酥月饼,加了点红曲粉,变得粉嫩了,好漂亮的颜色,为节日增添些色彩吧。\n" + "这次用了去皮绿豆沙馅,很软糯好吃。" }; ListView listView=(ListView)findViewById(R.id.listView); List<News> list=new ArrayList<News>(); for(int i=0;i<10;i++){ News news=new News(); news.setTitle(titles[i]); news.setDescription(descriptions[i]); // news.setImageID(imageID[i]); news.setUrlPath(urls[i]); list.add(news); } //通过ArrayAdapter实现数据绑定// ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(ListViewActivity.this,// android.R.layout.simple_expandable_list_item_1,list);// listView.setAdapter(arrayAdapter); ListAdapter myAdapter=new ListAdapter(list,ListViewActivity.this); listView.setAdapter(myAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_list_view, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
0 0
- listview 的使用
- ListView的使用
- ListView的使用技巧
- delphi ListView 的使用
- ListView的使用
- EasyMF ListView 的使用
- ListView的使用
- listview的使用1
- ListView的使用
- ListView控件的使用
- ListView的使用
- Listview 的基本使用
- ListView的使用1
- ListView的使用2
- android ListView的使用
- listView的使用
- VB ListView的使用
- ListView 控件的使用
- 机器学习算法汇总:人工神经网络、深度学习及其它
- Express + Node.js 实现拦截器
- 微信公众平台从入门到精通二
- iOS文件写入读取
- spring MVC配置详解
- ListView的使用
- 迭代----- Maximum Depth of Binary Tree
- JSTL中EL表达式无法直接取size的处理
- jqgrid刷新列表,重新加载数据
- 学习笔记——MySQL
- 【Linux】Android Studio在ubuntu14.04中的配置
- 怎样用EDIUS实现视频的快速剪裁
- MySql常用函数及命令
- React组件属性类--propTypes