0

ViewAndroid アプリケーションで、クラスを拡張するカスタム ビューを作成しました。xml レイアウト ファイルでクラスのオブジェクトを宣言したいのですが、何度も試行した後でも、setContentView呼び出しが実行されるとアプリケーションが予期せず停止します (ポップアップ ウィンドウが表示されます)。
私のMainActivityファイルで public として宣言されているビュー クラスには、2 つのコンストラクターがContextありContextますAttributeSet。そして、onDraw関数をオーバーライドしました。
このクラスは、という名前のソース パッケージにありますorg.me.myapp。レイアウト ファイルで、挿入するオブジェクトを次のように宣言します。

    <org.me.myApp.MainActivity.myView"
    android:id="@+id/View"
    android:layout_below="@id/toto"
    android:layout_width="300dip"
    android:layout_height="100dip"/>

誰が何が悪いのか教えてもらえますか?

お時間を割いていただき、ありがとうございます。

4

2 に答える 2

0

カスタム レイアウトを別のクラスとして宣言する必要があると思います 。

<org.me.myapp.MyView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  ...
/>
于 2011-04-02T15:56:35.453 に答える
0

Yar が言ったことは、View または ViewGroup を拡張してカスタム レイアウト要素を作成し、そのクラス名をレイアウト xml で使用する必要があるということです。あなたがしようとしているように見えるメンバー変数ではありません。レイアウトを膨らませた後、カスタム ビューにアクセスできます。

org.me.myapp.MyView myView = (org.me.myapp.MyView) findViewById(R.id.MYVIEWID);
于 2011-04-02T21:59:31.323 に答える