一、项目开发
1、项目开发运行效果图
2、开发概要
二、程序讲解
1、项目文件如下:
2、步骤
1)重写ListView控件MyListView,新建src目录下下添加bzu.eu.view/MyListView.java,代码部分如下:
package bzu.edu.view; import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; public class MyListView extends ListView { //重写ListView控件为MyListView public MyListView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } }
2)、修改res/layout/activity_main.xml文件,代码部分如下:
3)、在res/layout目录下添加list_layout.xml文件,代码部分如下:
4)、在vlues文件下添加arrays.xml,
代码如下:
代码如下:
- @drawable/p1
- @drawable/p2
- @drawable/p3
- @drawable/p4
- @drawable/p5
- @drawable/p6
- @drawable/p7
- @drawable/p8
- @drawable/p9
- @drawable/p10
- @string/p1
- @string/p2
- @string/p3
- @string/p4
- @string/p5
- @string/p6
- @string/p7
- @string/p8
- @string/p9
- @string/p10
- 潇湘夜雨
- 小小
- 青春无悔
- 小丸子
- 丫丫
- Mil
- 初见
- 片刻暗恋
- 陪你到老
- 乐此不疲
- @drawable/p1
- @drawable/p2
- @drawable/p3
- @drawable/p4
- @drawable/p5
- @drawable/p6
- @drawable/p7
- @drawable/p8
- @drawable/p9
- @drawable/p10
- @string/p1
- @string/p2
- @string/p3
- @string/p4
- @string/p5
- @string/p6
- @string/p7
- @string/p8
- @string/p9
- @string/p10
- 潇湘夜雨
- 小小
- 青春无悔
- 小丸子
- 丫丫
- Mil
- 初见
- 片刻暗恋
- 陪你到老
- 乐此不疲
5)、在src目录下添加bzu.edu.adapter/ArticleAdapter,代码如下:
package bzu.edu.adapter; import java.util.List; import bzu.edu.hou.R; 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.LinearLayout; import android.widget.TextView; //自定义ArticleAdapter类 public class ArticleAdapter extends BaseAdapter { private List list_mes=null; private Context context; //构造方法 public ArticleAdapter(Context context,List list_mes) { // TODO Auto-generated constructor stub this.list_mes=list_mes; this.context=context; } @Override public int getCount() { // TODO Auto-generated method stub return list_mes.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return list_mes.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } //设置item页面的布局效果 @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ListItem listitem; if(convertView==null) { convertView=(LinearLayout)LayoutInflater.from(context).inflate(R.layout.list_layout, null); listitem=new ListItem(); //获取到对应的控件对象 listitem.img=(ImageView)convertView.findViewById(R.id.head_img); listitem.name=(TextView)convertView.findViewById(R.id.name); listitem.time=(TextView)convertView.findViewById(R.id.time); listitem.rq=(TextView)convertView.findViewById(R.id.rq); listitem.article=(TextView)convertView.findViewById(R.id.article); convertView.setTag(listitem); }else { listitem=(ListItem)convertView.getTag(); } listitem.img.setImageDrawable(list_mes.get(position).getImg()); listitem.name.setText(list_mes.get(position).getName()); listitem.time.setText(list_mes.get(position).getTime()); listitem.rq.setText(list_mes.get(position).getRq()); listitem.article.setText(list_mes.get(position).getArticel()); return convertView; } //定义内部类作为占位符组合 public class ListItem{ ImageView img; TextView name; TextView time; TextView rq; TextView article; } }
package bzu.edu.adapter; import java.util.List; import bzu.edu.hou.R; 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.LinearLayout; import android.widget.TextView; //自定义ArticleAdapter类 public class ArticleAdapter extends BaseAdapter { private List list_mes=null; private Context context; //构造方法 public ArticleAdapter(Context context,List list_mes) { // TODO Auto-generated constructor stub this.list_mes=list_mes; this.context=context; } @Override public int getCount() { // TODO Auto-generated method stub return list_mes.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return list_mes.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } //设置item页面的布局效果 @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ListItem listitem; if(convertView==null) { convertView=(LinearLayout)LayoutInflater.from(context).inflate(R.layout.list_layout, null); listitem=new ListItem(); //获取到对应的控件对象 listitem.img=(ImageView)convertView.findViewById(R.id.head_img); listitem.name=(TextView)convertView.findViewById(R.id.name); listitem.time=(TextView)convertView.findViewById(R.id.time); listitem.rq=(TextView)convertView.findViewById(R.id.rq); listitem.article=(TextView)convertView.findViewById(R.id.article); convertView.setTag(listitem); }else { listitem=(ListItem)convertView.getTag(); } listitem.img.setImageDrawable(list_mes.get(position).getImg()); listitem.name.setText(list_mes.get(position).getName()); listitem.time.setText(list_mes.get(position).getTime()); listitem.rq.setText(list_mes.get(position).getRq()); listitem.article.setText(list_mes.get(position).getArticel()); return convertView; } //定义内部类作为占位符组合 public class ListItem{ ImageView img; TextView name; TextView time; TextView rq; TextView article; } } 6)、在src目录下添加bzu.edu.adapter/Messages ,代码如下:
package bzu.edu.adapter; import android.graphics.drawable.Drawable; public class Messages { private Drawable img;//图片 private String name;//姓名 private String time;//时间 private String rq;//日期 private String articel;//内容 //Messages的构造方法 public Drawable getImg() { return img; } public void setImg(Drawable img) { this.img = img; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public String getRq() { return rq; } public void setRq(String rq) { this.rq = rq; } public String getArticel() { return articel; } public void setArticel(String articel) { this.articel = articel; } }
package bzu.edu.adapter; import android.graphics.drawable.Drawable; public class Messages { private Drawable img;//图片 private String name;//姓名 private String time;//时间 private String rq;//日期 private String articel;//内容 //Messages的构造方法 public Drawable getImg() { return img; } public void setImg(Drawable img) { this.img = img; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public String getRq() { return rq; } public void setRq(String rq) { this.rq = rq; } public String getArticel() { return articel; } public void setArticel(String articel) { this.articel = articel; } } 7)、修改src/bzu.edu/MainActivity.java代码,如下:
package bzu.edu; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; import bzu.edu.adapter.ArticleAdapter; import bzu.edu.adapter.Messages; import bzu.edu.hou.R; import bzu.edu.view.MyListView; import android.os.Bundle; import android.app.Activity; import android.content.res.TypedArray; import android.view.Menu; import android.view.Window; import android.widget.BaseAdapter; public class MainActivity extends Activity { //定义重写的MyListView对象 //定义字符序列组用来存储的MyListView的数据源 private MyListView mylistview=null; private List list_msg=null; private BaseAdapter adapter=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //取消自带的标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); //通过setContentView方法设置当前页面的布局文件为activity_main; setContentView(R.layout.activity_main); findView(); setGv(); } private void setGv(){ if(list_msg==null){ getData(); } adapter=new ArticleAdapter(this,list_msg); //设置ListView的adapter; mylistview.setAdapter(adapter); } private void findView(){ //通过findViewById得到对应的空间对象; mylistview=(MyListView)findViewById(R.id.myListView1); } private void getData() { // TODO Auto-generated method stub //获得xml的资源 String names[]; String article[]; TypedArray img; int i; //通过getResources方法获取arrays内的字段 names=getResources().getStringArray(R.array.name); article=getResources().getStringArray(R.array.article); img=getResources().obtainTypedArray(R.array.head_photo); list_msg=new ArrayList (); for(i=0;i
package bzu.edu; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; import bzu.edu.adapter.ArticleAdapter; import bzu.edu.adapter.Messages; import bzu.edu.hou.R; import bzu.edu.view.MyListView; import android.os.Bundle; import android.app.Activity; import android.content.res.TypedArray; import android.view.Menu; import android.view.Window; import android.widget.BaseAdapter; public class MainActivity extends Activity { //定义重写的MyListView对象 //定义字符序列组用来存储的MyListView的数据源 private MyListView mylistview=null; private List list_msg=null; private BaseAdapter adapter=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //取消自带的标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); //通过setContentView方法设置当前页面的布局文件为activity_main; setContentView(R.layout.activity_main); findView(); setGv(); } private void setGv(){ if(list_msg==null){ getData(); } adapter=new ArticleAdapter(this,list_msg); //设置ListView的adapter; mylistview.setAdapter(adapter); } private void findView(){ //通过findViewById得到对应的空间对象; mylistview=(MyListView)findViewById(R.id.myListView1); } private void getData() { // TODO Auto-generated method stub //获得xml的资源 String names[]; String article[]; TypedArray img; int i; //通过getResources方法获取arrays内的字段 names=getResources().getStringArray(R.array.name); article=getResources().getStringArray(R.array.article); img=getResources().obtainTypedArray(R.array.head_photo); list_msg=new ArrayList (); for(i=0;i 到这里本项目可以说简单完工,本项目是一个简单的Android-ADT开发,菜鸟一枚!多多建议,批评!
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217522.html原文链接:https://javaforall.net
