....
android:onClick = "activity1";
....
public void activity1(View view)
{
.....
}
の型ビューのそのパラメータが、なぜあなたはすべてのビューにonClickListenerを設定することができはなぜのonClickメソッド
....
android:onClick = "activity1";
....
public void activity1(View view)
{
.....
}
の型ビューのそのパラメータが、なぜあなたはすべてのビューにonClickListenerを設定することができはなぜのonClickメソッド
型ビューのこの関数のパラメータです。つまり、そのリスナーは、リスナーを設定する要素の種類がわからないことを意味します。
すべての要素は、extend View
にonClickListenerを設定できるので、要素がView
であることがわかっているため、ビューが表示されます。
自分でクリックした要素を検出し、必要に応じて特定の要素にキャストできます。
さまざまなビューで同じonClickを使用できます。その場合、ビューはどのビューがクリックされたかを識別するために使用されます。例 については
android:onClick = "activity"
との3つのボタンがある場合は、この
public void activity(View view)
{
switch(view.getItemId()){
case R.id.button1:
break;
case R.id.button2:
break;
case R.id.button3:
break;
}
}
今、あなたは3つの別のボタンに同じのonClickを使用することができますを行うことができます。
これは 'activity(Button view)'だった場合でもうまくいくでしょう –
Viewはすべてのウィジェットの基本クラスであるため、アンドロイドは持っています。
たとえば、TextViewはViewを拡張し、ImageViewはビューを拡張します。
そして、あなたはあなたが複数の異なるビューの同じメソッドを使用することができることをgetItemIDなどだから、
のように、そこにビューが提供する基本的な機能を使用できるようになりましたビューV =新しいのTextView()
を書くことができます。 以下のコード
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onActivityClick" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onActivityClick" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onActivityClick" />
今すぐあなたの活動方法onActivityClick
だから基本的には複数のウィジェットに同じ方法を使用して、アプリケーション内のメソッドの数と余分なコードを保存することができます
public void onActivityClick(View view){
switch (view.getId()){
case R.id.button1:
//do something();
break;
case R.id.button2:
//do something();
break;
case R.id.button3:
//do something();
break;
}
}
のようになります試してみてください。
これが役に立ちます。
なぜ存在しないのですか? –
どのようなタイプがありますか?あなたがそれをあなたによく添付していないビューのタイプを得ると思ったら...それをタイプ、例えばTextview v =(TextView)ビューにキャストしてください。 – Memme
複数のビューに対して同じリスナーを再利用できるため、どのリスナーをクリックしたかを理解する方法が必要な場合があります。 – Blackbelt