0

次のようなカスタムビューコンポーネントを作成しようとしています。コンポーネントはメニューとして機能します。コンポーネントには、onClickイベントに反応する4つのイメージビューがあります。それらとそのクラスを使用して、個別の.xmlを作成しました。.xmlから親ノードクラスを設定するよりも"class='myclass'"。私の.xmlでは、imageviewにonClickが宣言されていますが、myclassを使用してそれを処理しようとすると、アプリケーションがクラッシュします。なにが問題ですか?または、主な質問は、カスタムビューのイベントハンドラーを設定する正しい方法は何ですか?このビュークラス定義にあるハンドラーです。ビューの.xmlに次のようなものを書き込む必要があります

追加:それでは、このカスタムビューからイベントを発生させて、処理を保持するアクティビティを実行するにはどうすればよいですか?

これが私のメニュー.xmlです

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
class="com.example.mtgesturestest.MTMenuViewController"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/main_layout" >

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

        <ImageView
            android:id="@+id/imageChannels"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:src="@drawable/channels"
            android:layout_marginBottom="10dp"           />
        <ImageView
            android:id="@+id/imageMessages"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:src="@drawable/messages"
            android:layout_marginBottom="10dp" />
        <ImageView
            android:id="@+id/imageTimeline"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:src="@drawable/timeline"
            android:onClick="yell"
            android:layout_marginBottom="10dp" />  

</RelativeLayout>
        <ImageView
            android:id="@+id/imageMenu"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:src="@drawable/menu"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="-15dp"
            android:onClick="maximizeMenu"/>

</RelativeLayout>

アプリケーションは、onClickハンドラー(maximizeMenu)を見つけることができないと言っていますが、com.mtgesturestest.MTMenuViewControllerクラスの代わりにこのビューを追加するアクティビティで検索しています。このメニューを独立させたい。クリックを処理し、アニメーションを再生してから、親アクティビティのイベントを発生させる必要があります。したがって、このonClick hereは、私のカスタムビューの内部使用のためのものであると言えます。

4

1 に答える 1

2

MTMenuViewControllerクラス内からonClickリスナーを追加してみませんか?

ImageView menu = (ImageView)this.findViewById(R.id.imageMenu);
menu.setOnClickListener(PUT THE LISTENER HERE);
于 2012-07-27T09:01:53.080 に答える