ArrayAdapterでListViewを作成しました。できます。しかし、アイテムのレイアウトのリソースIDは、Viewパラメータがnullの場合のアダプター定義とgetViewで2回指定する必要がありました。リストアダプタの設定 - リストアイテムのレイアウトリソースをどのように繰り返すことはできませんか?
// --------------------------------------------here is the FIRST use
lvShows.setAdapter(new ArrayAdapter<TvShow>(this, R.layout.show_row, allKnownShows) {
@Override
public View getView(int position, final View rowView, ViewGroup parent) {
LinearLayout showView;
if (rowView == null) {
// --------------------------------- here is the SECOND use
showView = (LinearLayout) inflater.inflate(R.layout.show_row, parent, false);
}
else {
showView = (LinearLayout) rowView;
}
((TextView) showView.getChildAt(0)).setText(time));
((TextView) showView.getChildAt(1)).setText(name);
return showView;
}
});
このようなスタイルは、もちろん不快です。親切にアドバイスしてください。私は間違って理解していますが、リソースを一度しか使用できません。
新しいArrayAdapterを作成する場合、レイアウトIDを設定しているので、それを知って何とか使用する必要があります。どうすればそれに達することができますか?それとも、アダプターが自動的にアイテムビューを作成すると思います。繰り返しますが、どうすれば使用できますか?
新しいArrayAdapterを作成するときに、そのリソースでArrayAdapterがどのように処理するのですか?すべてのコンストラクタがアイテムリソースを取得し、このリソースを管理し、それを "手作業で"膨張させます。それは効果的な方法ではありません。
BaseAdapter –
ありがとうございます。私はすでにコードを作業しています。私は美しさのためにお金を払うつもりはないので**とても**。後で、おそらく1〜2ヵ月後に、この別の理由でベースアダプタを試してみることにしますが、ここでは複雑なアイテムをリストに表示する簡単で正しい方法を知りたいと思います。 ArrayAdapterが一番簡単なようです。 – Gangnus