创建主布局文件
这就是新闻的一条 ,然后通过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方法 首先创建新闻类
<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之后的内容进行往主布局里面写新闻
主布局编写代码调用方法,并把所要添加的新闻
一共写了8条新闻在运行之后可以在ListView里面看到8条新闻<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>