LinearLayout から派生し、コンストラクターで次の xml を膨らませるカスタム ビューがあります。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title" />
<TextView
android:id="@+id/value"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:text="Value" />
</LinearLayout>
このビューは、アクティビティに 2 回 (またはそれ以上) 含まれています。また、ビューのコンストラクターで文字列 "Title" と "Value" を置き換えるため、ビューの 2 つのインスタンスの "title1"/"value1" と "title2"/"value2" になる可能性があります。
電話を回転させるまで、これは期待どおりに機能していると思いました(このプロセスでアクティビティが破棄されることも確認する必要があります)。アクティビティを再作成した後、最初の値のテキストは「value1」ではなく「value2」です!
textIsSelectable に起因する問題を突き止めました。その属性を削除すると、うまくいきます。
私は API レベル 14 をターゲットにしています。属性は私の layout-v14 フォルダーの一部にすぎません。プログラムで属性を設定しても同じです。
他の誰かがこれを経験しましたか?この問題を回避する方法を知っていますか??
私は Android 用の Mono を使用していることに注意してください。これがバグであるかどうかわかりませんか?