0

我有两个 Android 活动。

第一个是在 ListView 中显示书名。数据来自网络服务并读取图书 ID

通过单击一个项目(其值为书名),它将转到第二个活动以显示来自其他 Web 服务的书籍详细信息,但这取决于书籍 ID。

如何使第一个活动中的 ListView 显示标题但传递 ID?

4

2 回答 2

0

将此类适配器与您的列表视图一起使用并为列表视图实现 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;


}   
于 2012-11-19T13:42:13.597 回答
0

使用“自制”项目制作一个列表视图,并在构造函数中传递 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 或您在布局中使用的任何内容并放置设置器(当然还有您的适配器。)。

于 2012-11-19T13:30:50.113 回答