Java 传递bundle实例以放置选择器
我正在开发一个android应用程序,其主要目的是通过管理员更新员工的工作地点。现在,当我想从我的recycler视图(与我的UserManagerAdapter连接的员工列表)更改/更新员工的位置时,我必须将该员工的用户名传递给place picker intent,以便管理员在选择所需位置时,该用户的数据库将相应地更改 我的步骤(2个步骤)Java 传递bundle实例以放置选择器,java,android,bundle,google-places-api,Java,Android,Bundle,Google Places Api,我正在开发一个android应用程序,其主要目的是通过管理员更新员工的工作地点。现在,当我想从我的recycler视图(与我的UserManagerAdapter连接的员工列表)更改/更新员工的位置时,我必须将该员工的用户名传递给place picker intent,以便管理员在选择所需位置时,该用户的数据库将相应地更改 我的步骤(2个步骤) 我已将用户名作为bundle传递给place picker 我的用户管理器 holder.locationTv.setOnClickListe
holder.locationTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
launchPicker(data.get(position).getUserName());
}
});
private void launchPicker(String userName) {
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
Bundle bundle = new Bundle();
bundle.putString(USERNAME,userName);
try {
fragment.startActivityForResult(builder.build(fragment.getActivity()),PLACE_PICKER_REQUEST,bundle);
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == PLACE_PICKER_REQUEST){
if(resultCode == RESULT_OK){
Place place = PlacePicker.getPlace(getContext(),data);
address = place.getAddress().toString();
String latLng = place.getLatLng().toString();
latLang = latLng;
//update user's decided location
Bundle bundle = data.getExtras();
String userName = bundle.getString(USERNAME);// it returns null, Why?
updateLocation(latLang,userName);
Toast.makeText(getContext(), latLng, Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getContext(), getContext().getText(R.string.locationError), Toast.LENGTH_SHORT).show();
}
}
}
我的常数是
public static final String USERNAME="Username";
现在,
我的问题是
为什么bundle.getString(用户名)总是返回null
如何将数据传递给PlacePicker intent,以便我们可以在
活动结果
在复制了您的案例并进行了一点研究之后,我发现
startActivityForResult()
中的第三个参数不是用来将一组值传递给onActivityResult
,而是用来将选项传递给安卓本身,您可以找到这些选项。因此,如果您想要传递任何数据,您必须使用intent和putExtra(“用户名”,USERNAME)
,您可以使用getStringExtra(“用户名”)
检索它。答案中也解释了这一点。只是想确定是否调用了onActuvityResult
?你也在你的活动中覆盖了它吗?@lieforbanana是的,它调用正确,我通过在那里应用断点检查它是否返回null。