第七天ListView与BaseAdapter适配器混合运用
来源:互联网 发布:utorrent mac版 编辑:程序博客网 时间:2024/06/05 14:20
创建主布局文件
这就是新闻的一条 ,然后通过BaseAdapter方法调用在主布局ListView实现多条新闻
新闻类当中包含新闻布局里面的 标题 时间 图片 来源布局中所用的标签
<?xml version="1.0" encoding="utf-8"?><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.jeredu.administrator.classday7application.listdemo.List3Activity"> <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/lv3"></ListView></RelativeLayout>其中在ListView标签当中还这些标签
listSelector 背景颜色scrollbars 是否显示有侧边滑动条;有三个属性,不显示为nonedividerHeight ListView布局中的分割线效果可以设置宽度
用来创建Activity主布局文件用来显示ListView
创建BaseAdapter调用布局,用在主布局上显示新闻所需要的标签图片等
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="我是标题" android:id="@+id/title" android:layout_centerHorizontal="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:id="@+id/from" android:text="未来网" android:layout_below="@+id/iv" android:layout_alignParentStart="true" /> <ImageView android:layout_width="60dp" android:layout_height="60dp" android:src="@mipmap/ic_launcher" android:id="@+id/iv" android:scaleType="centerCrop" android:layout_below="@+id/title" android:layout_alignParentEnd="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="今天 " android:id="@+id/pubDate" android:gravity="center" android:layout_alignEnd="@+id/iv" android:layout_below="@+id/iv" android:layout_alignStart="@+id/iv" /></RelativeLayout>
这就是新闻的一条 ,然后通过BaseAdapter方法调用在主布局ListView实现多条新闻
编写BaseAdapter方法 首先创建新闻类
<span style="font-size:12px;">package com.jeredu.administrator.classday7application.entity;/** * Created by Administrator on 2016/8/3. */public class News { private String title; private String pubDate; private String newID; private int img; private String from; public News (){} public News(String title, String pubDate, String newID, int img, String from) { this.title = title; this.pubDate = pubDate; this.newID = newID; this.img = img; this.from = from; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getPubDate() { return pubDate; } public void setPubDate(String pubDate) { this.pubDate = pubDate; } public String getNewID() { return newID; } public void setNewID(String newID) { this.newID = newID; } public int getImg() { return img; } public void setImg(int img) { this.img = img; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; }</span><span style="font-size:12px;">}</span>
新闻类当中包含新闻布局里面的 标题 时间 图片 来源布局中所用的标签
编写BaseAdapter方法
package com.jeredu.administrator.classday7application.entity;import android.content.Context;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 android.widget.Toast;import com.jeredu.administrator.classday7application.R;import java.util.List;/** * Created by Administrator on 2016/8/3. */public class MyListAdaper extends BaseAdapter{ private List<News>myDate; private Context context; public MyListAdaper(Context context,List<News>myDate){ this.myDate=myDate; this.context=context; } @Override public int getCount() { return myDate.size(); } @Override public Object getItem(int i) { return myDate.get(i); } @Override public long getItemId(int i) { return 0; } @Override public View getView(final int i, View view, ViewGroup viewGroup) {<span style="color:#FF6666;">// View view= LayoutInflater.from(context).inflate(R.layout.list3_layout_base,null);// TextView title= (TextView) view.findViewById(R.id.title);// TextView pubDate= (TextView) view.findViewById(R.id.pubDate);// TextView from= (TextView) view.findViewById(R.id.from);// ImageView img = (ImageView) view.findViewById(R.id.iv);// News news =myDate.get(i);// title.setText(news.getTitle());// pubDate.setText(news.getPubDate());// from.setText(news.getFrom());// img.setImageResource(news.getImg());</span> ViewHolder vh ; if(view == null){ vh = new ViewHolder(); view = LayoutInflater.from(context).inflate(R.layout.list3_layout_base,null); vh.title= (TextView)view.findViewById(R.id.title); vh.img = (ImageView) view.findViewById(R.id.iv); vh.pubDate= (TextView) view.findViewById(R.id.pubDate); vh.from= (TextView) view.findViewById(R.id.from); view.setTag(vh); }else{ vh=(ViewHolder) view.getTag(); } vh.img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(context,"点击了图片"+i,Toast.LENGTH_SHORT).show(); } }); News news =myDate.get(i); vh.title.setText(news.getTitle()); vh.pubDate.setText(news.getPubDate()); vh.from.setText(news.getFrom()); vh.img.setImageResource(news.getImg()); return view; } public class ViewHolder{ TextView title; ImageView img; TextView pubDate; TextView from; }}方法中红色字体写的是不考虑资源占用等因素直接编写的方法,而另一种采用ViewHolder这种方法资源占有少,只用创建一次或是说调用一次布局文件,之后执行else之后的内容进行往主布局里面写新闻
主布局编写代码调用方法,并把所要添加的新闻
<span style="font-size:12px;">package com.jeredu.administrator.classday7application.listdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ListView;import com.jeredu.administrator.classday7application.R;import com.jeredu.administrator.classday7application.entity.MyListAdaper;import com.jeredu.administrator.classday7application.entity.News;import java.util.ArrayList;import java.util.List;public class List3Activity extends AppCompatActivity { private ListView lv3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list3); lv3= (ListView) findViewById(R.id.lv3); List<News> list = new ArrayList(); News ns =new News("新闻1","刚刚","n001",R.mipmap.ic_launcher,"新浪网"); list.add(ns); ns =new News("新闻2","今天","n002",R.mipmap.ic_launcher,"腾讯网"); list.add(ns); ns =new News("新闻3","昨天","n003",R.mipmap.ic_launcher,"百度网"); list.add(ns); ns =new News("新闻4","刚刚","n004",R.mipmap.ic_launcher,"新浪网"); list.add(ns); ns =new News("新闻5","刚刚","n005",R.mipmap.ic_launcher,"新浪网"); list.add(ns); ns =new News("新闻6","刚刚","n006",R.mipmap.ic_launcher,"新浪网"); list.add(ns); ns =new News("新闻7","刚刚","n007",R.mipmap.ic_launcher,"新浪网"); list.add(ns); ns =new News("新闻8","刚刚","n008",R.mipmap.ic_launcher,"新浪网"); list.add(ns); lv3.setAdapter(new MyListAdaper(this,list)); }}</span>一共写了8条新闻在运行之后可以在ListView里面看到8条新闻
0 0
- 第七天ListView与BaseAdapter适配器混合运用
- BaseAdapter 作为 ListView 适配器
- ListView适配器BaseAdapter
- ListView 适配器BaseAdapter配置
- ListView适配器BaseAdapter
- 自定义ListView ,适配器(BaseAdapter)
- listview适配器Baseadapter
- 自定义ListView适配器继承BaseAdapter
- android listview的适配器------baseadapter
- ListView的优化 +BaseAdapter适配器
- listView适配器之BaseAdapter详解
- Android中ListView与适配器ArrayAdapter,SimpleAdapter,定义BaseAdapter适配器,ListView添加headerView,ListView滚动到最后一项
- 第29讲 UI组件之 ListView与 BaseAdapter,SimpleAdapter
- ListView与 simpleadapter 。baseadapter
- ListView与BaseAdapter优化
- Fragment 与 ListView, BaseAdapter
- listview与baseadapter
- ListView与BaseAdapter
- 杭电 ACM 1035 简单模拟题
- 最小生成树-Prim算法和Kruskal算法
- 二叉树的镜像
- HDU 1233 还是畅通工程(模板)
- GoCD notes
- 第七天ListView与BaseAdapter适配器混合运用
- 树状数组总结
- 185 git 使用 Git Hook 实现网站的自动部署
- Android TabLayout导航条属性的设置
- 连续子数组的最大和
- js,数组去重
- 设计模式一些概念(二)
- POJ 3436ACM Computer Factory 最大流+路径输出 dinic模板
- 交叉验证(Cross Validation)