“按按钮”点击视图是否要从父视图中移除?

时间:2018-12-20 06:58:04

标签: android android-studio layout-inflater

我正在放大父视图的视图。它正在放大。该视图增加了我想要的时间,但是当我要删除特定视图时,并没有删除该视图。 当该按钮在烤面包上工作时有效,但在删除视图时无效。

这是我的主要活动:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:id="@+id/mainlayout"
android:orientation="vertical"
android:layout_height="wrap_content"
tools:context=".Activity.Reminders">

<android.support.v7.widget.Toolbar
    android:id="@+id/remindertoolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="2dp"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:theme="?attr/actionBarTheme">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/reminders"
        android:textSize="17sp"
        android:layout_marginStart="20dp"/>


    <ImageView
        android:id="@+id/addreminder"
        android:layout_width="22dp"
        android:layout_height="22dp"
        android:layout_marginStart="190dp"
        android:layout_marginEnd="30dp"
        android:src="@drawable/add"
        tools:ignore="ContentDescription" />


</android.support.v7.widget.Toolbar>


<ImageView
    android:id="@+id/imageView10"

    android:layout_width="157dp"
    android:layout_height="69dp"
    android:layout_marginStart="230dp"
    android:layout_marginTop="8dp"
    app:srcCompat="@drawable/addreminder1" />

<ImageView
    android:id="@+id/imageView7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="132dp"
    android:layout_marginTop="134dp"
    android:layout_marginEnd="123dp"

    app:srcCompat="@drawable/alarmclock"
    tools:ignore="ContentDescription" />

<TextView
    android:id="@+id/textView68"
    android:layout_width="wrap_content"
    android:layout_height="28dp"
    android:layout_marginStart="126dp"
    android:layout_marginTop="10dp"
    android:layout_marginEnd="126dp"
    android:text="@string/no_reminders_added_yet" />

这是我正在夸大的地雷活动:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="60dp"
    android:background="@drawable/shape2"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:orientation="horizontal">

        <TextView
            android:id="@+id/reminder"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/reminder" />

        <Switch
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="200dp" />

    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/custom_mesaage"
            android:importantForAutofill="no"
            android:inputType="text"
            tools:targetApi="o" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="36sp" />

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="@string/everyday" />


    </LinearLayout>

    <LinearLayout
        android:id="@+id/buttons"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioGroup
            android:id="@+id/group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            tools:ignore="UselessParent">


            <RadioButton
                android:id="@+id/day"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/day" />

            <RadioButton
                android:id="@+id/month"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/month" />


        </RadioGroup>


    </LinearLayout>


<android.support.v7.widget.RecyclerView
    android:id="@+id/listofmode"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

</android.support.v7.widget.RecyclerView>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/listofmode2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </android.support.v7.widget.RecyclerView>



    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/deleteimage"
            android:layout_width="40dp"
            android:layout_height="40dp"
           android:background="@drawable/delete"
            tools:ignore="ContentDescription" />

        <TextView
            android:id="@+id/deletetext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/delete" />


        <ImageView
            android:id="@+id/downimage"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_gravity="center"
            android:layout_marginStart="220dp"
            android:src="@drawable/downn"
            tools:ignore="ContentDescription" />
        <ImageView
            android:id="@+id/upimage"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_gravity="center"
            android:layout_marginStart="20dp"
            android:src="@drawable/upp"
            tools:ignore="ContentDescription" />

    </LinearLayout>

</LinearLayout>

我想添加要从父级中删除的视图,但不是。我在显示的按钮单击上添加了一个祝酒词。

代码如下:

 LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                            @SuppressLint("InflateParams") final View rowView = inflater.inflate(R.layout.reminderaddition, null);

  deleteme.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                layout.removeView((View) v.getParent());
                  Toast.makeText(getApplicationContext(), "this is a textview", Toast.LENGTH_LONG).show();
                            }
                        });
                        delete.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                layout.removeView((View) v.getParent());
                                Toast.makeText(getApplicationContext(), "this is a button", Toast.LENGTH_LONG).show();
                            }
                        });

我正在使用此tutorial

2 个答案:

答案 0 :(得分:0)

替换layout.removeView((View) v.getParent());

使用layout.removeView((View) v.getParent().getParent());

因为在布局文件中有2级层次结构,所以必须获得根线性布局,该根线性布局又是内部线性布局的父级。

答案 1 :(得分:0)

要删除视图,请使用以下代码:

layout.removeView(findViewById(VIEW_ID_YOU_WANT_TO_REMOVE));