【发布时间】:2018-04-18 05:34:46
【问题描述】:
我正在开发一个 android 应用程序,其主要目的是通过管理员更新员工的工作位置。现在,当我想从我的回收站视图(与我的 UserManagerAdapter 连接的员工列表)更改/更新员工的位置时,我必须将该员工的用户名传递给地点选择器意图,以便当管理员选择所需的位置,该用户的数据库将相应更改。
我的步骤(2 个步骤)
- 我已将用户名作为捆绑包传递给地点选择器意图。
我的用户管理器适配器
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(USERNAME) 总是返回 null?
如何将数据传递给位置选择器意图,以便我们可以接收它 活动结果?
【问题讨论】:
-
只是要求确认,
onActuvityResult被调用?你也在你的活动中覆盖它吗? -
@LieForBananas 是的,它正在正确调用,我已经通过在那里应用断点检查它是否返回 null。
标签: java android bundle google-places-api