0

TableLayout内のTableRowの内容を動的に変更することは可能ですか?

現在、次のような単純なテーブルレイアウトがあります。

    <TableLayout
        android:id="@+id/tableid"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center" >

        <TableRow>   
            <TextView
                android:id="@+id/tv1id"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="right"
                android:text="@string/tv1text" />

            <TextView
                android:id="@+id/tv2id"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="right"
                android:text="@string/tv2text" />   

        </TableRow>

        <!-- more TableRows ... -->

    </TableLayout>

私がやりたいのは、2番目の列のTextViewを別のビュー(私の場合はEditView)で動的に変更することです。これは、最初にテーブルに読み取り専用モードでデータを表示してから、たとえばユーザーが[編集]ボタンを押した後、編集可能な状態に切り替えるためです。

これは可能ですか?ありがとう。

4

1 に答える 1

0

はい、可能です。とはいえ、それは苦痛でしょう。XML をインフレートする必要があります。その後、EditText にスワップするトリガーを受け取ったら、削除するビューの ID を見つけて、そのビューを削除します。次に、新しい EditText を作成し、ID を指定して、削除するビューに似た新しい LayoutParams を作成する必要があります。次に、EditText をビュー グループに追加します。

于 2012-09-07T18:07:19.330 に答える