-1

私は現在Androidを学習しており、リストビューに取り組んでリストの複数のアイテムを表示しています。ばかげた質問かもしれませんが、舞台裏の理由を突き止めるために尋ねなければなりません (もしあれば)

以下は、リスト ビューにデータを入力する 2 つの方法です。

方法1

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ListView    moblieListView                      =   getListView();
    MobileListAdapter   mobileListAdapter           =   new MobileListAdapter(getApplicationContext(), mobileList);
    moblieListView.setAdapter(mobileListAdapter);

    moblieListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String selectedValue = (String)parent.getItemAtPosition(position);
            Toast.makeText(getApplicationContext(), selectedValue, Toast.LENGTH_SHORT).show();

        }       
    }); 
}

方法 2

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    MobileListAdapter   mobileListAdapter           =   new MobileListAdapter(getApplicationContext(), mobileList);
    setListAdapter(mobileListAdapter);

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    String str = l.getItemAtPosition(position).toString();
    Toast.makeText(MobileActivity.this, str, Toast.LENGTH_SHORT).show();
}

私が今見ているway1のは、のオブジェクトを持っているということですListViewway2。別のポイントはonItemClickにありますがonCreateway1onItemClick は から分離されonCreateていway2ます。

質問way2 よりも way1 を使用したり、その逆にしたりする特定の理由はありますか。これらについて何かアイデアがあれば助けてください。

4

1 に答える 1

1

どちらも問題なく、人々は両方の方法を使用しています。

ただし、私は最初の方法を好みます。

理由:

  1. 非常に多くのインターフェイスを実装するクラスになってしまうことはありません。

  2. 複数のビュー (onClickListener など) の場合、どのビューがイベントを引き起こしたのかを確認する必要はありません。

  3. 処理するビューについて書いたのと同じ領域にとどまっているため、上下にスクロールするのが煩わしくなくなります。

  4. アクティビティはアイテムをクリックできるものではなく、それをサポートするのは listView であるため、より理にかなっています。

  5. どのビューがどのリスナーにアタッチされているかを正確に把握できます。

  6. 複数のビューの場合の混乱を減らします (2 つの listView がある場合はどうしますか?) 。

  7. 2 番目のメソッドの xml でサポートされているメソッドはほとんどありません。ビューについては、 onClick しか知りません。とにかく、2番目の方法はポイント全体を失います。

于 2013-04-17T20:33:28.957 に答える