リストエントリをクリックしようとしています。My List はカスタム リスト ビューで、データは ArrayAdapter から取得されます。リストには、配列エントリの 3 つの部分と画像が表示されますが、これらの項目と残りの配列エントリを次のアクティビティに送信して、選択した項目に関する詳細情報を表示したいと考えています。
以下は、アダプターを含む私のクラスです。/** **/ というコメント付きのセクションが表示されますが、これらのアイテムを追加する方法を見つけようとしているのですが、理解できないようです。各 Book には 12 の属性がありますが、詳細情報をクリックする前に listView に表示されるのは 4 つだけです。
ビューホルダーを使用しているので、影響を受けているかどうかはわかりませんが、アイテムをクリックする前にリストビューにかなり長いリストを表示する予定です。
public class Novels extends ListActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
setListAdapter(new NovelAdapter(this, R.layout.list_item, NovelsStore.getNovels()));
getActionBar().setDisplayHomeAsUpEnabled(true);
}
public Novels() {
}
public class NovelAdapter extends ArrayAdapter<Book> {
LayoutInflater layoutInflater;
public NovelAdapter(Context context, int textViewResourceId, List<Book> novels) {
super(context, textViewResourceId, novels);
layoutInflater = LayoutInflater.from(context);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
ViewHolder holder;
Book novels = getItem(position);
// if no references in the view
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.list_item, null);
// put them into a holder
holder = new ViewHolder();
holder.tvTitle = (TextView) convertView.findViewById(R.id.tvTitle);
holder.tvSeries = (TextView) convertView.findViewById(R.id.tvSeries);
holder.tvEra = (TextView) convertView.findViewById(R.id.tvEra);
holder.ivBookImage = (ImageView) convertView.findViewById(R.id.ivBookImage);
//set the view tag
convertView.setTag(holder);
} else {
// in case we have a recycled view, just get the Tag
holder = (ViewHolder) convertView.getTag();
}
//Assign Property to the TextViews
holder.tvTitle.setText(novels.getTitle());
holder.tvSeries.setText(novels.getSeries());
holder.tvEra.setText(novels.getEra());
holder.ivBookImage.setImageResource(novels.getBookImage());
return convertView;
}
public class ViewHolder {
public TextView tvTitle;
public TextView tvSeries;
public TextView tvEra;
public ImageView ivBookImage;
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// If app icon in the action bar gets clicked; go back
onBackPressed();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
これに関するどんな助けも素晴らしいでしょう!