0

2 つの Android アクティビティがあります。

1 つ目は、ListView に本のタイトルを表示することです。データは Web サービスから取得され、書籍 ID を読み取ります

アイテム (その値は本のタイトル) をクリックすると、2 番目のアクティビティに移動して、他の Web サービスからの本の詳細を表示しますが、これは本の ID によって異なります。

最初のアクティビティで ListView にタイトルを表示させ、ID を渡すにはどうすればよいですか?

4

2 に答える 2

0

このようなアダプターをリストビューで使用し、リストビューに onItemClickListener を実装します。onItemClickListener から位置を取得し、bookId[position] に似た本 ID を持つ特定の本の詳細を表示する次のアクティビティに bookId[position] を送信します。

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);
}

}

またはそのようなもの。テキストビューやレイアウトで使用するものを取得し、セッター (そしてもちろんアダプター) を配置することを忘れないでください。

于 2012-11-19T13:30:50.113 に答える