2012-03-17 7 views
0

私の線形レイアウトは、二つのビューがあります:動的なものを表示する別のビューを制御するためのボタンを使用する方法

  1. カスタムビューを
  2. ワンボタン私がボタンを使用したい

カスタムビューを無効にしてAndroidで再描画できるようにします。すべてのビューが配置されているアクティビティ内にonClickListener()を実装しました。しかし、OnClickListener()は、リスナーがバインドされているビュー以外の他のビューアにアクセスできないようです。ボタンのOnClickListener()とは別のビューでinvalidate()を呼び出す方法は?

答えて

1

Activity.findViewById(id)で他のビューを取得できます。 XMLレイアウトでカスタムビューを宣言し、それにandroid:idを割り当てた場合は、返されたオブジェクトを目的の型にキャストする必要があります。そうでない場合は、ビューをインスタンス化する(つまり、そのコンストラクタを呼び出すことによって)インスタンス変数の形でオブジェクトへの参照を保持するだけです。

+0

ボタンを手で宣言します。そして、それはアクティビティのonCreate()でインスタンス化されます。それは、onClickListener()がそれにアクセスできるように、アクティビティ内でグローバルインスタンス変数を使用する必要があることを意味しますか? – kvzrock

+0

あなたはアイデアを持っていますが、用語は間違っています:) OO世界では「グローバル変数」のようなものはなく、すべてがオブジェクトに属しています。この場合、 'Activity'オブジェクトは' View'オブジェクトへの参照を保持する必要があります – Raffaele

0

アクティビティの属性として必要なビューを設定し、リスナメソッドからアクセスできます。乾杯!