在列表中的活动之间传递值

时间:2011-06-28 14:34:53

标签: android bundle android-intent simplecursoradapter

我正在使用SimpleCursoradapter来填充我在活动中拥有的List。

现在我需要将此活动的String值传递给另一个,并且该值将从本地数据库中提取。

我通过在listview中创建一个新的textview并使用SimpleCursorAdapter映射字符串值来做同样的事。

这是最好的做法吗?

public class InboxAdapter extends SimpleCursorAdapter {

    public InboxAdapter(Context context, int layout, Cursor c,
            String[] from, int[] to) {
        super(context, layout, c, from, to);
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        super.bindView(view, context, cursor);

        Button msgReply = (Button) view.findViewById(R.id.msgReply);
        final TextView msgId = (TextView) view.findViewById(R.id.msgId);
        msgReply.setOnClickListener(new View.OnClickListener() {

            private Intent intent;

            @Override
            public void onClick(View v) {
                intent = new Intent(getApplicationContext(), ComposeMessage.class);
                Bundle b = new Bundle();
                b.putCharSequence("id", msgId.getText());
                intent.putExtras(b);
                startActivity(intent);
            }
        });
    }

}

2 个答案:

答案 0 :(得分:2)

我在短时间内做了一点点,但this就是我用普通SimpleCursorAdapter设法做到这一点的一个例子。

内容从数据库中提取并显示在ListActivity中。这也适用于ListView s。

当用户单击列表中的项目时,onClick - 方法将数据库中的项目ID作为参数获取。在我的示例中,它然后打开一个新的Activity,查询来自数据库的特定信息。

答案 1 :(得分:1)

我是这样做的。

Bundle bundle = new Bundle();
bundle.putString(ClientList.KEY_Client, nameText.getText().toString());//ClientList is another activity
Intent ok=new Intent();
ok.putExtras(bundle);
setResult(RESULT_OK, ok);
finish();