我正在尝试单击列表条目。My List 是一个自定义列表视图,其中的数据是从 ArrayAdapter 中提取的。该列表显示了 Array 条目的 3 个部分和一张图片,但我想将这些项目和数组条目的其余部分发送到下一个活动,以显示有关所选项目的更多信息。
下面是我的类,里面有适配器。您将看到一个注释部分 /** **/ 我一直在试图弄清楚如何将这些项目放入,但我似乎无法弄清楚。每本书都有 12 个属性,但在单击以获取更多信息之前,listView 中只显示了 4 个。
我正在使用 Viewholder,所以我不确定我是否会影响我,但我确实计划在单击项目之前在列表视图中有一个相当长的列表。
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);
}
}
}
对此的任何帮助都会很棒!