Я пытаюсь нажать на запись в списке. Мой список — это настраиваемое представление списка, в котором данные извлекаются из ArrayAdapter. В списке показаны 3 части записи массива и изображение, но я хочу отправить эти элементы и остальную часть записи массива в следующее действие, чтобы показать больше информации о выбранном элементе.
Ниже мой класс с адаптером. Вы увидите закомментированный раздел /** **/, в котором я пытался понять, как разместить дополнительные элементы, но я просто не могу понять это. Каждая книга имеет 12 атрибутов, но только 4 отображаются в listView, прежде чем щелкнуть для получения дополнительной информации.
Я использую 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);
}
}
}
Любая помощь в этом будет здорово!