当前位置: 首页 > 知识库问答 >
问题:

从动态创建的布局中删除arraylist中的重复值Android

崔高远
2023-03-14

row.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/rowLinearLayoutItem"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginRight="50dp"
        android:layout_marginLeft="50dp"
        android:baselineAligned="true" >

        <Button
            android:id="@+id/rowButtonRemove"
            android:text="-"
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:background="@drawable/circle_button"/>

        <TextView
            android:id="@+id/rowItemCost"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:inputType="numberDecimal"
            android:ems="10"
            android:layout_weight="1" />

        <TextView
            android:id="@+id/rowItemTotal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:inputType="numberDecimal"
            android:ems="10"
            android:layout_weight="1" />

    </LinearLayout>

</LinearLayout>

fragment.java

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.advButtonAddItem:
                String itemAddString = editBoxItemAdd.getText().toString();
                if (itemAddString.isEmpty()){
                    Toast.makeText(getActivity(), "Please Enter Item Cost", Toast.LENGTH_LONG).show();
                }
                else {
                    LayoutInflater layoutInflater = (LayoutInflater) getActivity().getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    final View addView = layoutInflater.inflate(R.layout.row, null);
                    final TextView rowItemTotal = (TextView) addView.findViewById(R.id.rowItemTotal);

                    Button rowButtonRemove = (Button) addView.findViewById(R.id.rowButtonRemove);

                    rowItemTotal.setText(editBoxItemAdd.getText().toString());

                    itemList.add(rowItemTotal.getText().toString());  

                    updateCost();

                    rowButtonRemove.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            ((LinearLayout)addView.getParent()).removeView(addView);
                            itemList.remove(rowItemTotal.getText().toString()); //Remove inputted Item Cost into ArrayList itemList

                            updateCost();
                        }
                    });
                    row.addView(addView);
                }
                break;
        }
    }

共有1个答案

鲜于渊
2023-03-14
((LinearLayout)addView.getParent()).removeView(addView);

它将始终删除以前添加的项目

因为addview是您使用的lastitem

因此将其更改为

((LinearLayout)addView.getParent()).removeView(v);
 类似资料:
  • 问题内容: 我有一个字符串数组列表,并在其中添加了一些重复值。我只想删除那个重复的值,那么如何删除它。 在这个例子中我有一个主意。 但是有没有足够的方法来删除该重复表格列表。没有使用For循环?我可以通过使用HashSet或其他方式来做到这一点,但只能使用数组列表。想对此提出您的建议。谢谢您的提前答复。 问题答案: 您可以从列表中创建一个。在将包含每个元素只有一次,在相同的顺序。然后从创建一个新的

  • 我有一个hashmap,它包含一个arraylist作为值。我想检查其中一个ArrayList是否包含一个对象,然后从ArrayList中移除该对象。但是,怎么做? 我尝试过使用一些for循环,但是我得到了一个ConcurrentModificationException,并且我无法消除该异常。 我已经试过了:

  • 问题内容: 谢谢Marko。我重写代码。尝试使其简单。这次它可以真正编译。但它只能删除彼此相邻的重复项。例如,如果我输入1 2 3 3 4 4 5 1,则输出为1 2 3 4 5 1。最后它无法拾取重复项。(顺便说一句:本网站的新内容,如果使任何显示混乱我的歉意) 这是新的代码: 问题答案: 要回答“删除java arraylist中的重复项”问题: 只需将所有元素放到中,就可以完成。 -要么-

  • 问题内容: 如何从ArrayList中删除重复的元素? 问题答案: 如果你不想在中添加重复项,则应考虑为什么要使用允许重复项的。删除重复元素的最简单方法是将内容添加到中(不允许重复),然后将其添加Set回中ArrayList: 当然,这会破坏中的元素顺序。

  • 问题内容: 这个问题已经在这里有了答案 : 是什么导致java.lang.ArrayIndexOutOfBoundsException,如何防止它发生? (25个答案) 4年前关闭。 所以我有另一个带有main方法的类,在该类中我调用createNumbers(),createColours(),createBalls()。当我运行程序时,我在numere.remove(nr)处得到一个Index

  • 我有一个arraylist,它包含一对整数(例如int i,int j)。但它可能包含重复对(如(int i,int j)和(int j,int i))。现在如何在O(n)时间复杂度中去除重复。