先是显示主体布局的页面<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:id="@+id/mainListView"
android:layout_width="fill_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:id="@+id/mainListView"
android:layout_width="fill_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
import java.util.HashMap;
import java.util.List;import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;public class MainInActivity extends ListActivity {
private List<HashMap<String, Object>> mData;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); //声明使用自定义标题
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title1);//自定义布局赋值
TextView textView=(TextView) findViewById(R.id.titleTextView1);
textView.setText("昵称");
listView=(ListView) findViewById(R.id.mainListView);
listView.setAdapter(new MyAdapter(this));
}
//初始化list
private List<HashMap<String, Object>> getData(){
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map1=new HashMap<String, Object>();
HashMap<String, Object> map2=new HashMap<String, Object>();
HashMap<String, Object> map3=new HashMap<String, Object>();
HashMap<String, Object> map4=new HashMap<String, Object>();
map1.put("title", "温州晚报");
map1.put("content", "上海动车追尾");
map1.put("img", R.drawable.face56);
map2.put("title", "创意铺子");
map2.put("content", "ip5发售");
map2.put("img", R.drawable.face57);
map3.put("title", "21世纪经济报");
map3.put("content", "美国经济再次动荡");
map3.put("img", R.drawable.face58);
map4.put("title", "小S");
map4.put("content", "貌似又要生孩子了");
map4.put("img", R.drawable.face89);
return list;
}
/** 数据项视图类(只需定义视图上有多少个控件)*/
public final class ViewHolder {
public ImageView img;
public TextView title;
public TextView content;
}
/**
* 自定义适配器
*/
public class MyAdapter extends BaseAdapter{
private LayoutInflater layoutInflater;
//构造方法
public MyAdapter(Context context){
this.layoutInflater = LayoutInflater.from(context);
} @Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
/**
* getView返回每个数据项的视图
* 使用ViewHolder模式效率提高 优化用
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView==null){
convertView = layoutInflater.inflate(R.layout.mainlist, null);//根据布局文件实例化view
holder.title=(TextView) findViewById(R.id.mainListTextView1);
holder.content=(TextView) findViewById(R.id.mainListTextView2);
holder.img=(ImageView) findViewById(R.id.mainListImageView1);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
holder.img.setBackgroundResource((Integer) mData.get(position).get("img"));
holder.title.setText((Integer) mData.get(position).get("title"));
holder.content.setText((Integer) mData.get(position).get("content"));
return convertView;
}
}
}
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView android:src="@drawable/icon"
android:layout_height="wrap_content" android:id="@+id/mainListImageView1"
android:layout_width="wrap_content" android:layout_alignParentLeft="true"/>
<TextView android:text="TextView" android:id="@+id/mainListTextView1"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@id/mainListImageView1"/>
<TextView android:text="TextView" android:id="@+id/mainListTextView2"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@id/mainListImageView1" android:layout_below="@id/mainListTextView1"
/>
</RelativeLayout>
if(convertView==null){
convertView = layoutInflater.inflate(R.layout.mainlist, null);//根据布局文件实例化view
holder.title=(TextView) findViewById(R.id.mainListTextView1);
holder.content=(TextView) findViewById(R.id.mainListTextView2);
holder.img=(ImageView) findViewById(R.id.mainListImageView1);
convertView.setTag(holder);
}
你这里holder还是个null没有new个对象出来
其它的大概看了下 还有一些地方要改你的geData方法 不需要那么多的map吧 一个就够了自己百度个自定义listView吧 网上很多 从简单的例子入手
public int getCount() {
// TODO Auto-generated method stub
return 0;
}应该是return 4
我还是新手 可能接触有点问题 不知道是不是布局出了点错还是什么的