2017-07-15 5 views
1

私は専門家が前者を使用してonClickメソッドを正確な仕様に合わせることは理解していますが、onClick属性を使用して、メソッド内で同じ目的のアクションを指定することはできません。 、すなわち[XMLファイルに:] onClick="doSomething" &次いで [MainActivity.java中:]なぜ、onClick属性をアクティビティクラスの定義済みメソッドに設定するのではなく、onClickListenerを実装するのですか?

public void doSomething(View view){ 
    //define and start intent 
    //Show a toast, etc 
} 

理由だけ後者のオプションを使用しませんか?ありがとう

答えて

1

なぜ後者のオプションを使用しないのですか?

大きなプロジェクトに

、活動が直接ボタンを管理されることはほとんどありません:

  • あなたはフラグメントが活動よりも、ボタンを管理しやすくなり、その場合には断片を、使用している場合があります

  • あなたが他のいくつかの「プレゼンター」オブジェクトはあなたがUSIかもしれない活動

  • であるよりも、ボタンを管理しやすくなり、その場合などMVP、MVVM、MVI、GUIアーキテクチャを、使用している場合がありますそれでもレイアウトリソースにを使用しますが、活動以外にイベントを向けることがあり、その場合には、フレームワーク、(例えば、フラグメント、プレゼンター)

  • それでデータバインディングをngの

0

はい、同じことをしていますが、onClickListenerを使用する方が良い選択肢です。そのボタンをアクティブにして、ボタンとアクティビティがcooordinatonになるようにするときにリスナーを設定できます。 xmlファイルでonClickを使用すると、そのメソッドは常にあなたのアクティビティで何が起きているかは関係ありません。

関連する問題