0

メインアクティビティのonCreate()メソッド内で設定しているカスタムビューを作成しました。

このような:

compassView = new CompassView(this);
setContentView(compassView);

私の質問はです。xmlでビューを参照して、他のコントロールと一緒にlinearlayout内に配置するにはどうすればよいですか?

4

4 に答える 4

0

CompassViewあなたがと呼ばれるパッケージに配置されているクラスであると仮定すると、

com.android.sample

このような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:orientation="vertical" >

  <com.android.sample.CompassView 
       android:id="@+id/compassview"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"

      />
</LinearLayout>

そして今、いつものようにsetContentView(R.layout.xmlname);、あなたのonCreate()

compassView = (CompassView)findViewbyId(R.id.compassview);

于 2012-08-10T10:31:37.903 に答える
0

setContentView( "ここにxmlレイアウトを配置")

.xmlレイアウトでは、単純にurViewを追加します。

<com.example.widget.CompassView
            android:id="@+id/..."
            style="@style/..." >
    </com.example.widget.CompassView>
于 2012-08-10T10:32:00.363 に答える
0

カスタムビューをxmlファイルに追加する必要があります。次のようになります。

<yourpackagename.yourCustomViewClass
        android:id="@+id/myCustomView" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

この後、他のビューの場合と同様に、IDを介してこのビューにアクセスできます。

于 2012-08-10T10:32:02.490 に答える
0

まず、スーパークラスのコンストラクターをオーバーライドする必要があります。そうしないと、実行時エラーが発生し、アクティビティが開かれることはありません。次に、次のような完全修飾クラス名を使用する必要があります。

<your_package_name.your_class_name
   android:id="@+id/mycompass"
   your attributes here
   ...
 />
于 2012-08-10T10:35:31.543 に答える