将EditText替换为android.support.v7.widget.CardView标记

时间:2017-03-07 18:46:32

标签: android android-layout android-studio

我的布局文件中有一个EditText。用户点击此字段后,我希望将其替换为以下元素标记。我该怎么做?

自:

assert

要:

<EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="textPersonName"
            android:text="Name"
            android:ems="10"
            android:layout_alignParentTop="true"
            android:layout_marginTop="26dp" />

4 个答案:

答案 0 :(得分:1)

为两个视图添加ID,并通过将可见性设置为GONE

来初始隐藏CardView
<EditText
        android:id="@+id/edittext"        
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="Name"
        android:ems="10"
        android:layout_alignParentTop="true"
        android:layout_marginTop="26dp" />

<android.support.v7.widget.CardView
        android:id="@+id/cardview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">

        <fragment
            android:id="@+id/autocomplete_fragment"
            android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
      </android.support.v7.widget.CardView>

在您的java类中,在用户单击

时更改cardview和edittext的可见性
mEditText.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
      mEditText.setVisibility(View.GONE);
      mCardView.setVisibility(View.VISIBLE);
    }
});

答案 1 :(得分:0)

最简单的解决方案是将它们嵌入到LinearLayout或类似的东西中,并更改用户点击的可见性。隐藏EditText并显示CardView。

答案 2 :(得分:0)

您应该在布局中添加它们,默认情况下将CardView可见性设置为GONE

然后在您的班级中,您处理用户点击的位置,将EditText展示次数设置为View.GONE,将CardView展示次数设置为View.VISIBLE

答案 3 :(得分:0)

实施edittext的OnClickListeneronClick()内部方法隐藏您的编辑文字,并通过调用方法edittext.setVisibility(View.INVISIBLE)cardview.setVisibility(View.VISIBLE)取消隐藏卡片视图