为了账号安全,请及时绑定邮箱和手机立即绑定

我想利用 expandlelistView 来显示产品和子产品

我想利用 expandlelistView 来显示产品和子产品

弑天下 2022-07-27 09:27:49
我想利用 expandlelistView 来显示产品和子产品,即 childHolder,在 childHolder 中,它包含一个 textView 和一个 Edittext,其中包含每个子产品的产品计数值,这里的问题是。当我在编辑文本中输入值时,在折叠组时,数据会在编辑文本中丢失。这些值在其他组edittext中重复。3.如何保存数据以供以后在应用程序中使用。下面的代码。活动布局。<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".ui.activities.ShelfCheckActivity"><ExpandableListView    android:id="@+id/listview"    android:layout_width="wrap_content"    android:layout_height="match_parent"    android:dividerHeight="0dp"    android:groupIndicator="@null"    android:descendantFocusability="beforeDescendants"/></RelativeLayout>适配器类public class ShelfCheckAdapter extends BaseExpandableListAdapter {ArrayList<ListItemModel> groupItem;GroupViewHolder groupViewHolder;ChildViewHolder childViewHolder;Context context;public LayoutInflater layoutInflater;public ShelfCheckAdapter(ArrayList<ListItemModel> groupItem, Context context) {    this.groupItem = groupItem;    this.context = context;}public  void setInflater(LayoutInflater inflater){    this.layoutInflater = inflater;}@Overridepublic int getGroupCount() {    return groupItem.size();}@Overridepublic int getChildrenCount(int groupPosition) {    return groupItem.get(groupPosition).getArrayList().size();}@Overridepublic Object getGroup(int groupPosition) {    return groupItem.get(groupPosition);}@Overridepublic Object getChild(int groupPosition, int childPosition) {    return groupItem.get(groupPosition).getArrayList().get(childPosition);}@Overridepublic long getGroupId(int groupPosition) {    return groupPosition;}@Overridepublic long getChildId(int groupPosition, int childPosition) {    return childPosition;}@Overridepublic boolean hasStableIds() {    return false;}
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

只需更改以下方法并检查其工作与否!


@Override

public View getChildView(int groupPosition, int childPosition, boolean 

    isLastChild, View convertView, ViewGroup parent) {

    if(convertView == null)

    {

        convertView = LayoutInflater.from(context).inflate(R.layout.list_row_child,null);

        childViewHolder = new ChildViewHolder(convertView, groupPosition, childPosition);        

        convertView.setTag(childViewHolder);

    }

    else{

        childViewHolder = (ChildViewHolder) convertView.getTag();

    }

  childViewHolder.childTitle.setText(groupItem.get(groupPosition)

 .getChildTitles().get(childPosition));


      return convertView;


}

另一个变化是


private class ChildViewHolder {

    public TextView childTitle;

    public EditText et;


    public ChildViewHolder(View itemView, int groupPosition, int childPosition) {

        super(itemView);

        childTitle = itemView.findViewById(R.id.textViewChild);

        et = itemView.findViewById(R.id.productCount);


        et.addTextChangedListener(new TextWatcher() {

            @Override

            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {


            }


            @Override

            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

                if(charSequence != null){

                      groupItem.get(groupPosition).getArrayList().get(childPosition).setValue(charSequence.toString());

                }

            }


            @Override

            public void afterTextChanged(Editable editable) {



            }

        });

    }


}


查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信