一:java代码:
com.baseadapter.activity.MainActivity
package com.baseadapter.activity;
import java.util.ArrayList;
import java.util.List;
import com.baseadapter.adapter.MoreListAdapter;
import com.baseadapter.entity.More;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
public class MainActivity extends Activity {
private ListView listView;
private List<More> data;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获取组件对象
listView = (ListView) findViewById(R.id.listView);
//获取数据源
data=getData();
//实例化MoreListAdapter
MoreListAdapter adapter=new MoreListAdapter(this,data);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
System.out.println("点击了内容"+data.get(arg2).getTitle());
}
});
}
/**获得数据源*/
public List<More> getData(){
List<More> all=new ArrayList<More>();
all.add(new More(R.drawable.ip_gicon01,"内容1",R.drawable.ip_sicon01));
all.add(new More(R.drawable.ip_gicon02,"内容2",R.drawable.ip_sicon01));
all.add(new More(R.drawable.ip_gicon04,"内容3",R.drawable.ip_sicon01));
all.add(new More(R.drawable.ip_gicon05,"内容4",R.drawable.ip_sicon01));
all.add(new More(R.drawable.ip_gicon06,"内容5",R.drawable.ip_sicon01));
all.add(new More(R.drawable.ip_gicon08,"内容6",R.drawable.ip_sicon01));
return all;
}
}
com.baseadapter.adapter.MoreListAdapter
package com.baseadapter.adapter;
import java.util.List;
import com.baseadapter.activity.R;
import com.baseadapter.entity.More;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
/**自定义的适配器*/
public class MoreListAdapter extends BaseAdapter{
private List<More> all;
private LayoutInflater mLayoutInflater;
public MoreListAdapter(Context context,List<More> all){
this.all=all;
mLayoutInflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
return all.size();
}
@Override
public Object getItem(int position) {
return all.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView=mLayoutInflater.inflate(R.layout.layout_item,null);
Log.i("listview","&&&&&&&&&&&&&&&&");
}
/**获取控件*/
ImageView imageView=(ImageView) convertView.findViewById(R.id.icon1);
TextView titleView=(TextView) convertView.findViewById(R.id.title);
ImageView imagebtn=(ImageView) convertView.findViewById(R.id.icon2);
/**从存放More对象的集合里面取出一个元素*/
More item=all.get(position);
/**将这个对象的属性值设置到上面的控件里面*/
imageView.setImageResource(item.getImage());
titleView.setText(item.getTitle());
imagebtn.setImageResource(item.getBtn());
return convertView;
}
}
com.baseadapter.entity.more
package com.baseadapter.entity;
/**将显示在子布局里的内容封装在这个对象里*/
public class More {
/**图片1*/
private int image;
/**文本*/
private String title;
/**图片2*/
private int btn;
public More() {
super();
}
public More(int image, String title, int btn) {
super();
this.image = image;
this.title = title;
this.btn = btn;
}
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 int getBtn() {
return btn;
}
public void setBtn(int btn) {
this.btn = btn;
}
}
二:布局文件
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@android:color/white">
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="@drawable/ip_line01"/>
</LinearLayout>
ListView的子布局文件:layout_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="80dip"
android:gravity="center_vertical">
<ImageView android:id="@+id/icon1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"/>
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/icon1"
android:layout_marginLeft="20dip"
android:textColor="@android:color/black"/>
<ImageView android:id="@+id/icon2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="20dip"
android:background="#00000000"/>
</RelativeLayout>
效果如下: