1

私の Android アプリには、7 つの列を持つテーブルがあります。表の内容が更新されたときに、これらの列の背景色を変更したいと考えています。main.xml で列を指定する方法と背景色を変更する方法を教えてください。ありがとう。

投稿された main.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="fill_parent"
    android:background="#CDCDCD" android:orientation="vertical">
    <TableLayout android:id="@+id/tableLayout1" android:layout_width="match_parent" android:layout_height="wrap_content">
        <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <TextView android:text="100" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1"></TextView>
            <TextView android:text="100" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="2"></TextView>
            <TextView android:text="100" android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="3"></TextView>
            <TextView android:text="100" android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="4"></TextView>
            <TextView android:text="100" android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="5"></TextView>
            <TextView android:text="100" android:id="@+id/textView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="6"></TextView>
            <TextView android:text="100" android:id="@+id/textView8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="7"></TextView>
        </TableRow>
        <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <TextView android:text="100" android:id="@+id/textView11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1"></TextView>
            <TextView android:text="100" android:id="@+id/textView12" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="2"></TextView>
            <TextView android:text="100" android:id="@+id/textView13" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="3"></TextView>
            <TextView android:text="100" android:id="@+id/textView14" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="4"></TextView>
            <TextView android:text="100" android:id="@+id/textView15" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="5"></TextView>
            <TextView android:text="100" android:id="@+id/textView16" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="6"></TextView>
            <TextView android:text="100" android:id="@+id/textView17" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="7"></TextView>
        </TableRow>
    </TableLayout>
</LinearLayout>

編集:

これは、個々のテキストビューではなく列全体を強調表示する理由の例です。個々のテキストビューを強調表示すると、サイズが異なるため、その列の最も広いテキストビューの幅に拡張されません。テキストビューのサイズを各列の最も広いテキストビューのサイズに合わせて変更する方法を誰かが知らない限り。誰かがこれを知っているなら、投稿してください。

不均一なハイライト

編集:layout_weight プロパティを TableRow タグに追加した結果...

ここに画像の説明を入力

私も同じことを試しましたが、代わりに layout_weight プロパティを TextView タグに追加しました。これが結果です...

ここに画像の説明を入力

4

3 に答える 3

1

テキストビューに同じ幅を与えてハイライトの問題を修正するには、layout_weightプロパティを確認する必要があります

 <?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="fill_parent"
     android:background="#CDCDCD" 
     android:orientation="vertical">
  <TableLayout android:id="@+id/tableLayout1" android:layout_width="match_parent"              android:layout_height="wrap_content">
     <TableRow 
        android:id="@+id/tableRow1"
        android:layout_width="0dip" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.5">
        <TextView android:text="100" android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_column="1"></TextView>
    </TableRow>
    <TableRow   
       android:id="@+id/tableRow2" 
       android:layout_width="0dip" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.5">
        <TextView android:text="100" android:id="@+id/textView11" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_column="1"></TextView>            
    </TableRow>
  </TableLayout>
</LinearLayout>

現在、開発用PCを使用していないため、これを確認(およびフォーマットを修正)することはできませんが、動作するはずです。後で確認します。

于 2011-07-10T17:40:01.610 に答える
0

おそらく最も美しい解決策ではないかもしれませんが、列内のすべての TextViews の背景色を変更できます。

TextView textview2 = (TextView) findViewById(R.id.textView2);
TextView textview11 = (TextView) findViewById(R.id.textView11);
textview2.setBackgroundColor(Color.RED);
textview11.setBackgroundColor(Color.RED);
于 2011-07-10T15:56:19.953 に答える
0

最終的に、ネストされた一連の線形レイアウト、列に等間隔の垂直レイアウトを備えたフルスクリーンの水平レイアウトを使用することになりました。次に、TextView の背景を透明に設定すると、列の LinearLayout の背景を設定することで、列の背景全体を変更できます。

于 2013-06-12T23:05:36.773 に答える