我有两个 Android 活动。
第一个是在 ListView 中显示书名。数据来自网络服务并读取图书 ID
通过单击一个项目(其值为书名),它将转到第二个活动以显示来自其他 Web 服务的书籍详细信息,但这取决于书籍 ID。
如何使第一个活动中的 ListView 显示标题但传递 ID?
我有两个 Android 活动。
第一个是在 ListView 中显示书名。数据来自网络服务并读取图书 ID
通过单击一个项目(其值为书名),它将转到第二个活动以显示来自其他 Web 服务的书籍详细信息,但这取决于书籍 ID。
如何使第一个活动中的 ListView 显示标题但传递 ID?
将此类适配器与您的列表视图一起使用并为列表视图实现 onItemClickListener。从 onItemClickListener 获取位置并将 bookId [位置] 发送到下一个活动,您希望在其中显示具有类似于 bookId [位置] 的特定书籍的详细信息。
public class MySimpleAdapter extends BaseAdapter
{
private final Activity context;
private final String[] bookTitle;
private final Integer[] bookId;
public MySimpleAdapter(Activity context, String[] title,Integer[] id)
{
super();
this.context = context;
this.bookTitle = title;
this.bookId = id;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return bookTitle.length;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
//inflating
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(R.layout.list_inflater,null);
//binding
final TextView tvTitle=(TextView)convertView.findViewById(R.id.tvTitle);
tvTitle.setText(bookTitle[position]);
return convertView;
}
使用“自制”项目制作一个列表视图,并在构造函数中传递 ID 和该项目的变量。例子:
public class TextBook extends LinearLayout {
private String id;
public TextBook(Context context, AttributeSet attrs, String id) {
super(context, attrs);
this.id = id;
LayoutInflater inflater = (LayoutInflater) getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.yourlayout, this);
}
}
或类似的东西。并且不要忘记检索 textview 或您在布局中使用的任何内容并放置设置器(当然还有您的适配器。)。