Android 是否可以将expandablelistview用作具有多个select的微调器的下拉视图?

Android 是否可以将expandablelistview用作具有多个select的微调器的下拉视图?,android,spinner,expandablelistview,Android,Spinner,Expandablelistview,我使用的是一个按钮和一个包含ExpandableListView的AlertDialog。 同时在子行中放置一个复选框,它可以用于单选,但不等待多选 当我使用multiple select时,我必须在对话框外单击以终止对话框。好的,我正在回答我自己的问题,现在它可以工作了。我只是使用“检查”和“不检查”图像来显示是否选中了子类别 步骤: 在工具栏/操作栏上创建一个按钮,使UI像微调器一样 Button btn_filter = (Button)layoutView.findViewById(R.

我使用的是一个按钮和一个包含ExpandableListView的AlertDialog。 同时在子行中放置一个复选框,它可以用于单选,但不等待多选


当我使用multiple select时,我必须在对话框外单击以终止对话框。

好的,我正在回答我自己的问题,现在它可以工作了。我只是使用“检查”和“不检查”图像来显示是否选中了子类别

步骤:

  • 在工具栏/操作栏上创建一个按钮,使UI像微调器一样

    Button btn_filter = (Button)layoutView.findViewById(R.id.filters);
    btn_filter.setOnClickListener(new OnClickListener() {
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            dialogFilter.show();
        }
    });
    
  • 创建一个警报对话框,设置按钮下方的x、y位置

    WindowManager.LayoutParams wmlp = dialogFilter.getWindow().getAttributes();
    wmlp.gravity = Gravity.TOP | Gravity.LEFT;
    wmlp.x = 10;   //x position
    wmlp.y = 100;   //y position
    
  • 为类别和子类别创建类(模型)并添加数据

    public class FilterCategory {
        public String category_name = null;
        public ArrayList<SubCategory> subcategory_array = new  ArrayList<SubCategory>();
    }
    public class SubCategory {
         public String subcategory_name = null;
         public boolean selected = false;
    }
    
  • 最后在适配器中

     @Override
     public View getGroupView(int groupPosition, boolean arg1, View view, ViewGroup parent) {
      GroupHolder groupHolder;
    
      if (view == null) {
       view = LayoutInflater.from(mContext).inflate(R.layout.group_row,null);
       groupHolder = new GroupHolder();
       groupHolder.img = (ImageView) view.findViewById(R.id.tab_img);
       groupHolder.title = (TextView) view.findViewById(R.id.group_name);
       view.setTag(groupHolder);
      } else {
       groupHolder = (GroupHolder) view.getTag();
      }
      groupHolder.title.setText(mGroupCollection.get(groupPosition).category_name);
      if(arg1){
           groupHolder.img.setImageResource(R.drawable.dropdown_small_arrow_converted);
       }else{
           groupHolder.img.setImageResource(R.drawable.right_small_arrow_converted);
       }
        return view;
     }
    
     @Override
     public View getChildView(final int groupPosition, final int childPosition, boolean arg2, View convertView,ViewGroup parent)
     {
        final ChildHolder childHolder;
      if (convertView == null) {
       convertView = LayoutInflater.from(mContext).inflate(R.layout.child_row, null);
       childHolder = new ChildHolder();
       childHolder.checkBox = (ImageView)convertView.findViewById(R.id.checkbox);
       childHolder.name=(TextView)convertView.findViewById(R.id.childname);
       convertView.setTag(childHolder);
      } else {
       childHolder = (ChildHolder) convertView.getTag();
      }
      childHolder.name.setText(mGroupCollection.get(groupPosition).subcategory_array.get(childPosition).subcategory_name);
    
      if(mGroupCollection.get(groupPosition).subcategory_array.get(childPosition).selected) {
       childHolder.checkBox.setVisibility(View.VISIBLE);
      } else {
       childHolder.checkBox.setVisibility(View.GONE);
      }
    
      return convertView;
     }
    
  • 截图:

    抱歉,我无法发布截图,因为至少需要10个声誉才能发布图像:(

     @Override
     public View getGroupView(int groupPosition, boolean arg1, View view, ViewGroup parent) {
      GroupHolder groupHolder;
    
      if (view == null) {
       view = LayoutInflater.from(mContext).inflate(R.layout.group_row,null);
       groupHolder = new GroupHolder();
       groupHolder.img = (ImageView) view.findViewById(R.id.tab_img);
       groupHolder.title = (TextView) view.findViewById(R.id.group_name);
       view.setTag(groupHolder);
      } else {
       groupHolder = (GroupHolder) view.getTag();
      }
      groupHolder.title.setText(mGroupCollection.get(groupPosition).category_name);
      if(arg1){
           groupHolder.img.setImageResource(R.drawable.dropdown_small_arrow_converted);
       }else{
           groupHolder.img.setImageResource(R.drawable.right_small_arrow_converted);
       }
        return view;
     }
    
     @Override
     public View getChildView(final int groupPosition, final int childPosition, boolean arg2, View convertView,ViewGroup parent)
     {
        final ChildHolder childHolder;
      if (convertView == null) {
       convertView = LayoutInflater.from(mContext).inflate(R.layout.child_row, null);
       childHolder = new ChildHolder();
       childHolder.checkBox = (ImageView)convertView.findViewById(R.id.checkbox);
       childHolder.name=(TextView)convertView.findViewById(R.id.childname);
       convertView.setTag(childHolder);
      } else {
       childHolder = (ChildHolder) convertView.getTag();
      }
      childHolder.name.setText(mGroupCollection.get(groupPosition).subcategory_array.get(childPosition).subcategory_name);
    
      if(mGroupCollection.get(groupPosition).subcategory_array.get(childPosition).selected) {
       childHolder.checkBox.setVisibility(View.VISIBLE);
      } else {
       childHolder.checkBox.setVisibility(View.GONE);
      }
    
      return convertView;
     }