ListView是安卓编程最常使用的控件之一,这是我最常用的一种方法,记录下,以便查看,随便请大虾看看,有没有什么不妥的地方。
1.布局文件。
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="#40000000"
android:dividerHeight="0.3dp" >
</ListView>
2.Activty中初始化代码
private ListView list;
list = (ListView) view.findViewById(R.id.list);
3.保存数据的data类
/**
*
* @author 任爱民
*/
public class BiaoData {
private String title;// 一个字段
public BiaoData(String title) {
super();
this.title = title;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
4.每条View的BaseAdpter
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.graphics.drawable.Drawable;
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 com.wmaifclient.R;
import com.wmaifclient.adapter.data.BiaoData;
public class ListAdapter extends BaseAdapter {
private List<Data> list = new ArrayList<Data>();
private Context context;
public void adddata(Data data) {
list.add(data);
}
public void removeint(int n) {
list.remove(n);
}
public ListAdapter(Context context) {
super();
this.context = context;
}
public Context getContext() {
return context;
}
public void setContext(Context context) {
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int n) {
return list.get(n);
}
@Override
public long getItemId(int n) {
return n;
}
@Override
public View getView(int n, View convertview, ViewGroup viewgroup) {
if (convertview == null) {
convertview = LayoutInflater.from(getContext()).inflate(
R.layout.list_main, null);
convertview.setTag(new BiaoContent((TextView) convertview
.findViewById(R.id.title)));
}
// 赋值
Content content = (Content) convertview.getTag();
content.getTitle().setText(biaolist.get(n).getTitle());
return convertview;
}
public class Content {
private TextView title;// 标题
public BiaoContent(TextView title) {
super();
this.title = title;
}
public TextView getTitle() {
return title;
}
public void setTitle(TextView title) {
this.title = title;
}
}
}
5.list_main.xml为自定义布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/title"
style="@style/place_font"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black" />
</LinearLayou>
6.为ListView设置自定义的BaseAdapter
<pre name="code" class="java">ListAdapter adapter = new ListAdapter(getContext());
// 参数依次是Drawable houseimage, String title, int price, String
// place,String explore, String discount
adapter.adddata(new Data( "玛丽的花园"));
adapter.adddata(new Data( "玛丽的花园"));
adapter.adddata(new Data( "玛丽的花园"));
adapter.adddata(new Data( "玛丽的花园"));
adapter.adddata(new Data( "玛丽的花园"));
adapter.adddata(new Data( "玛丽的花园"));
if(list != null)list.setAdapter(adapter);
7.点击事件
list.setOnItemClickListener(new CustomOnItemClickListener());
class CustomOnItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> adaptetview, View v, int n,
long m) {
}
}