GoogleIo のこのビデオで listView を実行したプログラマーが説明したように、スクロール ビュー内に ListView を配置することはありません。リストをスクロールしない場合は、線形レイアウトのような ViewGroup を使用し、コード内のループですべての項目をこの ViewGroup に追加します。行全体をクリック可能にする場合は、別の ViewGroup を各行のルート ノードとして使用し、このビューに OnClickListener を追加する必要があります。
サンプルコード:
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int current = 0; current < itemCount; current++) {
View view = inflater.inflate(R.layout.layout_id, parent, false);
//initialize the view
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), CLASS_TO_START)
startActivity(intent);
}
});
viewGroup.addView(view);
if (current < itemCount - 1) {
inflater.inflate(R.layout.line, viewGroup);
}
}
このコードは、持っているアイテムごとに 1 つのビューを生成し、viewGroup に入れます。最後のアイテムを除くすべてのアイテムの後に、viewGroup に仕切りも追加されます。