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