获取ListItem中的信息并将其发送到下一个Activity

时间:2012-06-18 14:05:40

标签: java android eclipse

我对Eclipse& ADT插件世界,所以任何答案都可以解释一下它在做什么?这将非常有帮助。

基本上,我在一个活动中有一个列表,该列表将由来自数据库API的HTTP请求填充,我仍在努力。但是,我想知道的是,我能够在ListItem中获取字符串并将其提供给下一个活动中的TextView吗?

因此,例如,我点击'Record 1',然后将'Record 1'放入变量中,然后将用户发送到下一个屏幕,并将变量插入到TextView中。这可能吗?

谢谢。

3 个答案:

答案 0 :(得分:2)

从适配器获取所需内容,然后将其放入启动新活动的Intent中:

    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String string = parent.getAdapter().getItem(position);
            Intent intent = new Intent(this, nextActivity.class);
            intent.putExtra("text", string);
            startActivity(intent);
        }
    });

在新的Activity中,您将获得启动新Activity的Intent并获取您放入其中的String:

String data = getIntent().getStringExtra("text");

答案 1 :(得分:0)

为listItem实现setOnItemClickListener(),您将捕获所单击的listItem和所需的String,然后使用intent.putExtra(String id, STRING_VALUE)将字符串传递给下一个活动。

答案 2 :(得分:0)

是的,这是可能的。

您可以使用Extra向其他活动发送信息。请参阅以下代码:

Intent i = new Intent(this, NoteEdit.class);
i.putExtra(NotesDbAdapter.KEY_ROWID, id);
startActivityForResult(i, ACTIVITY_EDIT);

您使用putExtra将要发送的数据发送到活动。在示例中,NotesDbAdapter.KEY_ROWID是您为访问数据而提供的名称,id是数据本身。

而且,这是您从活动中获取数据的方式:

Bundle extras = getIntent().getExtras();
mRowId = (extras == null) ? null : extras.getLong(NotesDbAdapter.KEY_ROWID);