复合视图和还原状态

时间:2015-05-11 14:04:50

标签: android android-custom-view

我有一个带有图标和EditText的复合视图:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/edit_text_height">

    <ImageView
        android:id="@+id/ivIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/edit_text_padding"
        android:layout_marginRight="@dimen/edit_text_padding"
        android:layout_centerVertical="true" />

    <EditText
        android:id="@+id/etContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerVertical="true"
        android:cursorVisible="true"
        android:gravity="left|center_vertical"
        android:layout_marginLeft="@dimen/edit_text_padding"
        android:layout_marginRight="@dimen/edit_text_padding"
        android:paddingLeft="@dimen/edit_text_padding_left"
        android:paddingRight="@dimen/edit_text_padding_left"
        android:layout_centerHorizontal="true"
        android:maxLines="1"
        android:background="@android:color/transparent"
        style="@style/edit_text" />
</RelativeLayout>

我在登录表单和我的应用程序中的其他位置使用此复合视图。有时我需要在onSaveInstanceState()发生时保存字段的内容。当我恢复状态时,所有字段都将具有上一个EditText字段的相同值,因为通常所有EditText个视图都具有相同的ID(etContent)。

除此之外,如果您有登录活动(电子邮件和密码字段),这将产生安全问题,因为第一个字段(电子邮件)将具有最后一个字段的值(在这种情况下是密码)。

有任何解决此问题的建议吗?

0 个答案:

没有答案