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

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

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

扬帆大鱼 2022-08-03 12:41:02
我想利用 expandlelistView 来显示产品和子产品,即子持有者,在子持有者中,它包含一个 textView 和一个 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 ListItemModel {String title;ArrayList<EdittextValues> arrayList = new ArrayList<>();public ListItemModel(String title) {    this.title = title;}public String getTitle() {    return title;}public void setTitle(String title) {    this.title = title;}public ArrayList<EdittextValues> getArrayList() {    return arrayList;}public void setArrayList(ArrayList<EdittextValues> arrayList) {    this.arrayList = arrayList;}}波霍类public class EdittextValues {String value;public EdittextValues(String value) {    this.value = value;}public String getValue() {    return value;}public void setValue(String value) {    this.value = value;}}
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

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


@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-08-03
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号