ほとんどのプロジェクトで常にonclick()
イベントを使用しています。しかし、私はOnClickListener()
について読みました。これら2つの違いは誰かわかりますか?そして、Androidアプリケーション?で使用するのに最適なのはどれですか?.
質問が明確かどうかはわかりません。 _View.OnClickListener
_は、onClick(View)
メソッドを定義するインターフェースです。クリックをリッスンすることを目的としたクラスがある場合は、インターフェイスを実装する必要があり(まだ拡張していない場合)、このメソッドも実装する必要があります。両方を使用する必要があります。それらはどういうわけか代替ではありません。
OnClickListener
は実装する必要のあるインターフェースであり、Javaコードでビューに設定できます。
最近Android Android:onclick
と呼ばれるビューにxml属性が追加されました。これを使用すると、インターフェースを実装しなくても、ビューのアクティビティでクリックを直接処理できます。
どちらも同じように機能しますが、一方はJavaコードを介して設定され、もう一方はxmlコードを介して設定されます。
onClick
によって、XMLレイアウトで定義するものを使用すると想定しています。これら2つは、同じ機能を提供しますが、実装が異なる代替手段です。
XMLレイアウトの関数バインディングを使用したonClick
は、onClickとそれが呼び出す関数の間のバインディングです。 onClickが機能するためには、関数に1つの引数(View
)が必要です。
OnClickListener
は、どのクラスでも実装できるインターフェースです。これはどのクラスでも実装できるインターフェースであるため、その形式はより柔軟性があり、より複雑です。 OnClickListener
で持つことができるいくつかの柔軟性
OnClickListener
を使用すると、クリックイベントのアクション/動作を、イベントをトリガーするView
から分離できます。単純な場合はそれほど大したことではありませんが、複雑なイベント処理の場合は、コードの可読性と保守性が向上する可能性があります。OnClickListener
はインターフェースであるため、それを実装するクラスには、イベントを処理するために必要なインスタンス変数とメソッドを決定する際の柔軟性があります。繰り返しますが、これは単純なケースでは大したことではありませんが、複雑なケースでは、イベント処理に関連する変数/メソッドを、イベントをトリガーするビューのコードと混同する必要はありません。OnClickListenerは、誰かが実際にクリックするのを待つものであり、onclickは、誰かがクリックしたときに何が起こるかを決定します
リスナーはクラスであり、onclickはメソッドであり、この区別は単純なケースではあまり役に立ちませんが、より複雑にしたい場合はさらに必要になります
Button button = (Button)findViewById(R.id.buttonId);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do stuff
}
});
OnClickListenerはインターフェースであり、onClickはOnClickListenerのメソッドです。
プログラムでOnClickListener
を設定する理由はいくつかあります。 1つ目は、アプリの実行中にボタンの動作を変更したい場合です。ボタンを別のメソッドに完全に向けることも、何もしないOnClickListener
を設定してボタンを無効にすることもできます。
onClick
属性を使用してリスナーを定義すると、ビューはそのホストアクティビティでのみその名前のメソッドを探します。プログラムでOnClickListener
を設定すると、ホストアクティビティ以外の場所からボタンの動作を制御できます。これはFragments
に非常に関連するようになります。ボタンはアクティビティではなく、定義されたリスナーが検索されないため、Fragments
は常にOnClickListeners
を使用してボタンを制御する必要があります。 onClick
で。
プログラムでOnClickListener
を設定する理由はいくつかあります。 1つ目は、アプリの実行中にボタンの動作を変更したい場合です。ボタンを別のメソッドに完全に向けることも、何もしないOnClickListener
を設定してボタンを無効にすることもできます。
onClick
属性を使用してリスナーを定義すると、ビューはそのホストアクティビティでのみその名前のメソッドを探します。プログラムでOnClickListener
を設定すると、ホストアクティビティ以外の場所からボタンの動作を制御できます。これは、基本的にミニアクティビティであるフラグメントについて説明するときに非常に重要になります。これにより、独自のライフサイクルでビューの再利用可能なコレクションを構築し、アクティビティにまとめることができます。フラグメントはアクティビティではないため、ボタンを制御するには常にOnClickListeners
を使用する必要があり、onClick
で定義されたリスナーは検索されません。
XMLにAndroid:onClick="your_method"
属性を追加できます。
例:
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Click"
Android:onClick="your_method"/>
プログラムでOnClickListenerを設定する理由はいくつかあります。 1つ目は、アプリの実行中にボタンの動作を変更したい場合です。ボタンを別のメソッドに完全に向けることも、何もしないOnClickListenerを設定してボタンを無効にすることもできます。
OnClick属性を使用してリスナーを定義すると、ビューはそのホストアクティビティでのみその名前のメソッドを探します。プログラムでOnClickListenerを設定すると、ホストアクティビティ以外の場所からボタンの動作を制御できます。これは、基本的にミニアクティビティであるフラグメントについて学習するときに非常に重要になります。これにより、独自のライフサイクルを持つビューの再利用可能なコレクションを構築し、アクティビティにまとめることができます。フラグメントはアクティビティではないため、ボタンを制御するために常にOnClickListenersを使用する必要があり、onClickで定義されたリスナーは検索されません。
onclick()
とsetOnClicklisner()
の主な違いは次のように説明されます。
onclick()
xmlの属性です。ボタンがクリックされたときにonclick
メソッドが呼び出され、レイアウトに3つのボタンがあるとすると、onclick()
の関数を1つだけ追加でき、1つのボタンのいずれかがクリックされたときにonclick()
呼び出されます
setOnClicklistner()
レイアウトに3つのボタンがあり、それらとは異なるアクションを実行するとします。次に、各ボタンでsetonClicklistner()
メソッドを使用して、ボタンに異なるメソッドを指定する必要があります
「OnClickListener」は、ユーザーがアプリのボタンをクリックするのを待っている人だと考えてください。次に、あなたの男はあなたのメソッドを実行しますOnClick()。
XmlファイルのボタンにIDを入力してから、MainActivity.Javaファイルで名前を付ける必要があります。次に、クリックリスナーをあなたの男に設定します。そして、onClickメソッドを追加します。これが、onClickがインターフェースView.OnClickListenerにバインドされている理由です: https://developer.Android.com/reference/Android/view/View.OnClickListener.html
例:
Button myButton = (Button)findViewById(R.id.myButton);
myButton.setOnClickListener(new View.OnClickListener(){
@override
public void onClick(View v) {
// your method...
}
}
Javaコードのボタンにクリックリスナーを追加する場合は、OnClickListener
を使用します。
レイアウトファイルのボタンにクリックリスナーを追加する場合は、Android:onClick="your_method"
を使用します。
XMLバリアントを使用する場合は、アプリクラスにyour_method
を実装する必要があります。
誰もがいつも使っていたOnClickListener
listnerについて言及しました。もう1点追加したいAndroid:onClick
はメソッドとして機能し、参照する必要がないため、タスクの実行後にボタンを追加する必要があり、OnClickListener
で参照できない場合に便利です。
example
の場合、レイアウトのみ(フラグメントなし)でビューページャーを作成すると、任意のレイアウトにボタンを配置すると、レイアウトが表示されている場合にのみインシアル化されるため、その中でButtonのメソッドfindViewById
を使用できませんケースAndroid:onClick
そのメソッドをアクティビティに入れるだけで便利になりました!!
ここに簡単な用語があります。uが家にいて、Uが誰かに電話をかけたい場合、uは直接電話をかけ、彼らはuを聞くことができます。 (onclickを使用)。ただし、外にいて自宅の誰かに電話をかけたい場合は、電話またはインターネットを使用する必要があります(onclicklistenerを使用する必要があります)。 Androidすべては自宅から始まります。つまりmain_activityです。これが方法ですAndroid年の作業が簡単になります。アクティビティが1つある場合は、リスナーをアタッチする必要はありません。 、オブジェクトを作成し、それを定義します。onClickを使用するだけです。Onclicklistenerは通常フラグメントで使用されます。したがって、コーディングを続けてください。
XmlではOnClick
を使用し、OnClickListner
コードではJava
を使用します。どちらも機能を実行するために使用されます。
を使用しております
public void button_onClick_name(View v)
{
-------
}
クラス外のメソッドを定義します。ただし、クラス内でコンポーネントのClickイベントを定義するには、onclickリスナーを使用します。