Androidでは、たとえばonClick()
という機能をボタンに書き込んで、その機能にリンクすることができます。しかし、ほとんどの時間私はそれをやっていない人が表示されますが、onClickListener
をボタンにJavaファイルで有効にしています。
なぜですか?両者の違いは何ですか?あなたがそれらの1つを使用することが許されない場合がありますか?JavaファイルのonClick関数を使用してXMLファイルのonClick()を書くリスナーとの違いは何ですか?
0
A
答えて
0
機能的にはどちらかを使用することができ、どちらも同じことを行います。どちらを使用するかは制限されていませんが、Javaコードの方が柔軟性があり、必要に応じてより多くの機能を追加できるため、多くの開発者がJavaコードの使用を推奨します。場合によっては、人々がXMLファイルに非常に基本的なメソッド呼び出しを追加して、必要なすべてを実行するJavaメソッドにリンクすることがあります。
全体的には、好みとコーディングスタイルの問題です。
2
短い説明:XMLを介し
onClick
は、あなたのコード内のfixed
実装のために良いですが、OnClickListener
を使用すると、複数のUI要素や複雑なUIの流れと複雑なアプリケーション構造のためのより良いですが、両者はまったく同じことを行いますもの。
詳細:
あなたはレイアウトを経てonClick
を設定し、LayoutInflator setContentView
によって開始は景色コードによって管理尊敬ビューコンストラクタ&にこの属性を渡します。
しかし、OnClickListener
を使用すると、複雑なアプリの構造に関するクリックイベント管理のコントロールの動作を変更できます。以下は
内部実装自体はsetOnClickListener
を使用していますので、私は上記のように、両方が同じである 、XMLのonClickオプションを使用すると、アプリはシンプルである場合にのみ、良いです
case R.styleable.View_onClick:
if (context.isRestricted()) {
throw new IllegalStateException("The android:onClick attribute cannot "
+ "be used within a restricted context");
}
final String handlerName = a.getString(attr);
if (handlerName != null) {
setOnClickListener(new DeclaredOnClickListener(this, handlerName));
}
onClick
属性の内部実装のスナップですそれ以外の場合はListenerを使用します。
コードで 'onClick'リスナーを宣言すると、より読みやすくなります。ハンドリングメソッドがどこから呼び出されたかを簡単に確認できます。ハンドリングメソッドがXMLでのみ設定されている場合は、未使用として。 –