0

ウィンドウの上部(タイトルバーの真下)にビューがあるプログラムを作成しました。プログラムの進行状況に応じて、ビューの色が変わります。

これは問題なく機能します。

今私の問題は次のとおりです。2つのテキストビューを隣り合わせに配置したい。したがって、おそらく:View、Tablelayout、tablerow、textview、textview、tablerow end、tablelayout end、viewend。

しかし、これはうまくいかないようです。「Java.lang.RuntimeException:アクティビティComponentInfoを開始できません」および「ビューをビューグループにキャストできません」というエラーが発生しました。

Javaコードのどこにも、xmlコードの新しいビューに触れることはありません。そのXMLに触れる唯一のJavaはTopView = (View)findViewById(R.id.TopView);TopView.setBackgroundColor(Color.GREEN );Topviewが外側のビューであり、内部に何もなくても完全に機能します。

これはXMLコードです

    ...
<View
        android:id="@+id/TopView"
        android:layout_width="fill_parent"
        android:layout_height="20dp" 
        android:background="#8E8E8E" >



        <TableLayout
                android:id="@+id/tableTrolo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TableRow
                    android:id="@+id/TableRow000"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="left"
                    android:gravity="left"
                    android:orientation="vertical" >


            <TextView
                        android:id="@+id/lbl1"
                        android:layout_width="120dp"
                        android:layout_height="wrap_content"
                        android:text="Vare :"
                        android:textSize="22dp" />

                    <TextView
                        android:id="@+id/lbl2"
                        android:layout_width="180dp"
                        android:layout_height="wrap_content"
                        android:text="du grim" />

            </TableRow>
            </TableLayout>


    </View>
...
4

3 に答える 3

1

タグ内に複数の要素を配置していますViewViewは子ビューを保持していません、ViewGroupそのためのクラスがあります。代わりにFrameLayout、、LinearLayoutのいずれかを使用してください。RelativeLayout

于 2012-10-30T12:04:56.607 に答える
1

使用しないでくださいView。に変更ViewしますViewGroup。ViewとViewGroupの違いは、ViewGroupに他のビューを含めることができることです。TextViewやその他のものをその中に入れたい場合は、またはのようなレイアウトを使用する必要がありViewGroupます。LinearLayoutRelativeLayout

于 2012-10-30T12:05:12.933 に答える
1

child-viewsの中に入れることはできませんView

AViewは、常にレイアウト階層のリーフノードです。

1.xml-layoutの1行目を次のように書き直します。

<LinearLayout
    android:id="@+id/TopView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:background="#8E8E8E">

2.対応するJavaコードを次のように変更します。

TopView = (LinearLayout)findViewById(R.id.TopView);
于 2012-10-30T12:06:05.670 に答える