0

UIを駆動する次のXMLレイアウトがあります。

<TableLayout
    android:id="@+id/tableLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="1"
    android:layout_margin="10dp" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Username:" />

        <EditText
            android:id="@+id/txtUsername"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName" >

        </EditText>

    </TableRow>

       <!-- more rows are here -->

</TableLayout>

このレイアウトをアプリの別のセクションで再利用したいのですが、ある場所で少し変更します。同じ場所にあるすべてのものにEditText txtUsername変更してほしい。TextViewつまり、基本的には、コード内のEditTextをTextViewに交換しています。

どうすればよいですか?

4

1 に答える 1

2

それが必要な唯一の変更である場合は、TextViewをレイアウトに追加し(デフォルトはView.GONE)、必要に応じてView.setVisibility(View.VISIBLE)とView.setVisibility(View.GONE)を使用してそれらを交換します。 。

<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Username:" />

    <EditText
        android:id="@+id/txtUsername"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName" >

    </EditText>
    <TextView
        android:id="@+id/txtUsernameTV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName" 
        android:visibility="gone">

    </TextView>
</TableRow>

次に、Javaで、すでに同じアクティビティを残すことができます。新しいアクティビティ(代わりにTextViewが必要な場合)では、次のようにします。

editTextReference.setVisibility(View.GONE);
textViewReference.setVisibility(View.VISIBLE);

2つのビューのIDには異なる値が必要になることに注意してください。

于 2012-07-19T23:29:49.377 に答える