質問1:残念ながら、あなたが最も直感的に言っているのは、Androidで最も使用されていないものです。私が理解しているように、UI(XML)と計算機能(Java Class Files)を分離する必要があります。また、デバッグが容易になります。この方法を読んでAndroid imoについて考えるのは、実際にははるかに簡単です。
質問2:主に使用される2つは#2と#3だと思います。例として、ボタンのclickButtonを使用します。
2
匿名クラスの形式です。
Button clickButton = (Button) findViewById(R.id.clickButton);
clickButton.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
***Do what you want with the click here***
}
});
これは、ボタン変数がfindViewByIdで設定された場所のすぐ隣にonClickメソッドがあるため、私のお気に入りです。このclickButtonボタンビューを処理するすべてのものがここに配置されていることは、非常に整然としているようです。
私の同僚がコメントしている短所は、あなたがonclickリスナーを必要とする多くのビューを持っていると想像することです。onCreateが非常に長くなることがわかります。だから彼が使うのが好きな理由:
3
5つのclickButtonがあるとします。
アクティビティ/フラグメントがOnClickListenerを実装していることを確認してください
// in OnCreate
Button mClickButton1 = (Button)findViewById(R.id.clickButton1);
mClickButton1.setOnClickListener(this);
Button mClickButton2 = (Button)findViewById(R.id.clickButton2);
mClickButton2.setOnClickListener(this);
Button mClickButton3 = (Button)findViewById(R.id.clickButton3);
mClickButton3.setOnClickListener(this);
Button mClickButton4 = (Button)findViewById(R.id.clickButton4);
mClickButton4.setOnClickListener(this);
Button mClickButton5 = (Button)findViewById(R.id.clickButton5);
mClickButton5.setOnClickListener(this);
// somewhere else in your code
public void onClick(View v) {
switch (v.getId()) {
case R.id.clickButton1: {
// do something for button 1 click
break;
}
case R.id.clickButton2: {
// do something for button 2 click
break;
}
//.... etc
}
}
私の同僚が説明するこの方法は、すべてのonClick計算が1か所で処理され、onCreateメソッドを混雑させないため、彼の目にはすっきりしています。しかし、私が目にする欠点は、次のことです。
- 自分自身を表示し、
- また、onClickメソッドで使用されるonCreateにあるその他のオブジェクトは、フィールドにする必要があります。
さらに情報が必要な場合はお知らせください。長い質問なので、完全には答えられませんでした。そして、もし私がいくつかのサイトを見つけたら、私は私の答えを拡大します、今、私はいくつかの経験を与えています。