Android 从列表视图填充editText

Android 从列表视图填充editText,android,Android,我有一个编辑文本,旁边是一个按钮。当您单击按钮时,我使用onClick触发启动新活动的意图,这将显示listView 单击listView中的项目时,我希望listView活动关闭并用该项目填充editText。看来我在这方面完全错了,有什么建议吗?您必须开始第二个活动“获取结果”,然后在其中设置结果。然后,结果将被传递到第一个活动,在那里您可以随心所欲地使用它 在此处检查startActivityForResult的参考: 在第二个活动中使用setResult设置结果(仅限整数): 使用o

我有一个编辑文本,旁边是一个按钮。当您单击按钮时,我使用onClick触发启动新活动的意图,这将显示listView


单击listView中的项目时,我希望listView活动关闭并用该项目填充editText。看来我在这方面完全错了,有什么建议吗?

您必须开始第二个活动“获取结果”,然后在其中设置结果。然后,结果将被传递到第一个活动,在那里您可以随心所欲地使用它

在此处检查startActivityForResult的参考:

在第二个活动中使用setResult设置结果(仅限整数):

使用onActiviryResult可获得以下结果:

您要做的是使用
StartActivityForResult()
启动新活动。然后让您的
onActivityResult()
方法接收在您的选择活动中选择的信息,并将编辑文本的文本设置为适当的值。

启动意图时,使用“startActivityForResult”,如中所述

当您使用ListView激发活动的意图时,该行应如下所示:

Intent someIntent = new Intent(someAction, someUri);
startActivityForResult(someIntent, SOME_REQUEST_CODE);    

在具有ListView的活动中,在返回之前,使用“setResult”方法设置正确的resultCode(您传入的那个),以及保存数据的意图

...
Intent data = new Intent();
data.putExtra("key",value);    
setResult(RESULT_OK, Intent data)
....

然后,回到调用活动中,将调用onActivityResult,其中包含该数据

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   if (requestCode == SOME_REQUEST_CODE) { //which activity you're returning from
       if (resultCode == RESULT_OK) { // Everything went as expected
            Bundle extras = data.getExtras();
            String val = extras.getString(key);
            doSomething(val)
            ...
       }
   }
}


希望这有帮助

罗杰,没有理由不这样做。你能给我们看看你到目前为止的代码吗?也许我们可以看到你哪里出了问题。到目前为止,你只描述了你正在努力实现的目标,但没有描述你的尝试失败的地方。请告诉我们什么不起作用。我不会使用RESULT_OK作为请求代码(您的第一个代码框),因为它已经用于结果(您的最后一个代码框)。