Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有自定义项目布局和复选框的ListView-项目不可单击_Android_Listview_Checkbox_Touch - Fatal编程技术网

Android 具有自定义项目布局和复选框的ListView-项目不可单击

Android 具有自定义项目布局和复选框的ListView-项目不可单击,android,listview,checkbox,touch,Android,Listview,Checkbox,Touch,我有一个带有项目自定义布局的列表视图: (ImageView、TextView、2xImageView和D复选框) 我希望我的项目是可点击的(调用st)、可选择的(这样我就可以选择一个项目),并且复选框可以切换并改变其状态 如何实现这一点?您可能需要在适配器的getView()方法中为分级栏创建自己的侦听器,如下所示 public View getView(int position, View convertView, ViewGroup parent)

我有一个带有项目自定义布局的列表视图:

(ImageView、TextView、2xImageView和D复选框)

我希望我的项目是可点击的(调用st)、可选择的(这样我就可以选择一个项目),并且复选框可以切换并改变其状态


如何实现这一点?

您可能需要在适配器的getView()方法中为分级栏创建自己的侦听器,如下所示

public View getView(int position, View convertView,
                    ViewGroup parent) {
  View row=super.getView(position, convertView, parent);
  ViewHolder holder=(ViewHolder)row.getTag();

  if (holder==null) {   
    holder=new ViewHolder(row);
    row.setTag(holder);

    RatingBar.OnRatingBarChangeListener l=
                new RatingBar.OnRatingBarChangeListener() {
      public void onRatingChanged(RatingBar ratingBar,
                                    float rating,
                                    boolean fromTouch)  {
        Integer myPosition=(Integer)ratingBar.getTag();
        RowModel model=getModel(myPosition);

        model.rating=rating;

        LinearLayout parent=(LinearLayout)ratingBar.getParent();


      }
    };

    holder.rate.setOnRatingBarChangeListener(l);
  }

  RowModel model=getModel(position);

  holder.rate.setTag(new Integer(position));
  holder.rate.setRating(model.rating);

  return(row);
}
}

你可以看到这样一个完整的例子