在getView里面给每个TextView或者ImageView单独设置。

解决方案 »

  1.   

    重写BaseAdapter,在里面的getView方法里写你要的监听事件就可以了
      

  2.   

    喔,可是setOnClickListener(listener);
    在listener类里面怎么知道所点的这个是listview的第几项呢?
      

  3.   


    public class MyAdapter extends BaseAdapter {
    private List<User> users;
    private int resource;
    private LayoutInflater inflater;
    private Context context;
    public MyAdapter(List<User> users, Context context, int resource,
    String user_qq) {
    this.users = users;
    this.resource = resource;
    this.context = context;
    inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    } @Override
    public int getCount() {
    return users.size();
    } @Override
    public Object getItem(int position) {
    return users.get(position);
    } @Override
    public long getItemId(int position) {
    return position;
    } @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
    convertView = inflater.inflate(resource, null);
    }
    User user = users.get(position);
                   //获取控件
    Button button = (Button) convertView.findViewById(R.id.re);
    //为控件设置数据
                      button.setText("评论");
                   //设置监听事件
                      button.setOnclickListener(new View(
                         ............
                                
                                ));
    return convertView;
    }}
      

  4.   

    这个我懂,问题是
    设置监听事件里面我也需要position
      

  5.   

    在设置监听事件前面加上
    button.setTag(position);
    在onClick(View v)方法里面用
    int position =Integer.parseInt(v.getTag().toString())就可以得到你当前点击的是哪一个条目 
      

  6.   

    可以在适配器类中的getView()方法里面实现,每次通过findViewById()找到,listView 子条目中的子控件subControlView之后,利用subControlView.setTag(position),将getView()参数中传进来的position设置为子控件的tag,想要判断位置时再取出来即可。