のBaseAdapter
行を管理するがありますListView
。グループ化やヘッダーなしでリストビューにレコードを表示している間、これはすべて正常に機能しました。私のアダプタはとを使用し、ArrayList
グループ化されていないデータセットの場合は問題なく動作します。外観は次のとおりです。
public class SearchResultsAdapter extends BaseAdapter {
public ArrayList<Result> objResults;
public SearchResultsAdapter(Search ctxContext, ArrayList<Result> objResults) {
this.objResults = objResults;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (check whether it is a category) {
View v = mInflater.inflate(R.layout.category, null);
final TextView sectionView = (TextView) v.findViewById(R.id.text);
sectionView.setText("New Category");
return v;
} else {
View vewRow = mInflater.inflate(R.layout.row, null);
TextView tvwName = (TextView) vewRow.findViewById(R.id.name);
tvwName.setText(objResults.get(position).getName());
return vewRow;
}
}
}
アダプタのgetView
メソッドが内部で呼び出されると、その時点でコレクションから単一の行が返されることだけが期待されposition
ます。
理想的にはHashMap
、データをグループ化し、各グループのデータをマップのキーの下に保存することができたので、を使用できましたが、;を使用した場合のようにHashMap
単純な方法でアイテムを参照することはできません。それは論理的です。position
ArrayList
多くのアプリがヘッダーと行の両方を表示するためにを使用しているのを見てきましたがListView
、これに最適なコレクション/パターンがわかりません。
ありがとう。