自己定义ListView就要自己写个LIstviewAdapter继承BaseAdapter这个类然后通过其中的getView()方法把数据映射到相应控件之中
下面是我实现的带单选框的listView(如果是想带按钮实现更简单,就不需要考虑单选框的按钮特性了)
在做的过程之中出现了点击item无响应的情况,最后发现是子控件radioButton获得了焦点是其父控件即item失去了焦点所以在getView ()之中让RadioButton失去焦点即可
先放个效果图

代码如下
package com.example.mylistview;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.TextView;
public class MyListViewWithRadio extends Activity implements OnItemClickListener {
private ListView listView;
private List
layout中的XML代码如下: