..
それが最初に混乱を避けるために、そして露出の線形パスを追跡するために操作の基本を説明するために好まれたため、前の章では意図的に、読者、リスナーの最適化バージョンを提供していませんでした。 実装の観点からは、しかし、上記のコード - などだが - 確かに推奨される解決方法ではありません。
私達が今何を参照してください、そのため、メソッドsetOnClickListenerを使用してOnClickListenerのボタンの両方で呼び出されるオブジェクトを作成することにより、リスナーの最適化された実装です。
Posizioniamociは、その後、ファイルのHelloWorld.javaををタッチして次のコードを挿入します。
View.OnClickListener View.OnClickListenerマネージャ=新しい(){
します。public void onClickの(ビュービュー){
スイッチ(view.getId()){
R.id.bottone1家:
textView1.setText('E'はボタン1をクリックされた!!!!!");
破る;
R.id.bottone2家:
textView1.setText('E'ボタン2をクリックされた!!!!!");
破る;
}
}
};
bottone1.setOnClickListener(マネージャ);
bottone2.setOnClickListener(マネージャ);
ので、まず新しい構造が、我々は以前とOnClickメソッドを再定義しようとクラスのコンストラクタが呼び出された後、型のOnClickListenerのオブジェクトを作成し、。
我々が作成されていることをリスナーがbottonniため、両方に同じであることの区別があり、以前の実装よりも、我々はリスナーの新しいインスタンスでメモリを節約。 利点は、ウィンドウ内のボタンの数など、より一層明らかである。
本質的には、リスナーはそれに応じて行動するクリックされた2つのボタンのどちら推測することができます。 ボタンの認識は、条件view.getId()に基づいて、 スイッチを使用して押されている。
我々はボタンがクリックされると、OnClickメソッドは、引数としてビューを持っていると見ることができるように、Viewオブジェクトは、押されたボタンで初期化されます。 メソッドgetIdを使って()が以前の章で見たファイルR.javaのボタンに関連付けられた一意のIDを返します。
我々が構築するケースで見ることができるようにこの時点では、ボタンのIDに基づいて押されたボタンを識別することが可能です。
かつてのOnClickメソッドのコードは、正確に"OnClickListener、以前に作成した引数としてメソッドsetOnClickListenerボタンの両方で呼び出されます。
一度理解、この章に示されているコードは、それは使いやすく、簡単に変更できます。 (ではなく、少なくともそのような電話のような非常に限られたメモリを持つデバイスをプログラミングするときに)この実装で、実際には、だけでなく、メモリの少ない使用を許可するには、保守が容易であるという大きな利点を有する。 我々はコードのどの部分を編集するために行く正確に知っているリスナーの動作を変更する必要がある場合があるためです。 その場合には、我々は内部のコードを変更するためにその後andarneリスナーのために使用されるすべての要素のすべてのコードを通過する必要があります、ので、彼らは古い実装を使用する場合にも、同じことは、あなたが言うことができない。
我々は同じリスナを使用する別のボタンを挿入する必要性は、次の手順に従う必要があります持っているかのように改良された実装も容易に拡張可能です。
| |
Flash MXとのActionScript(コース)
29€からWebサイトの開発者になる。 |
| |
MySQLの(コース)
オープンソースのデータベースの管理。 39€から。 |
| |
XML(コース)
XMLの構造、XSLおよび他の言語の拡張可能の作成 。 29€から開始。 |