我正在开发一款Android应用,其主要目的是通过管理员更新员工的工作地点。现在,当我想从我的回收站视图(与我的UserManagerAdapter连接的员工列表)更改/更新员工的位置时,我必须将该员工的用户名传递给场所选择器意图,以便当管理员选择所需的时候位置,该用户的数据库将相应更改。
我的步骤(2个步骤)
我的UserManagerAdapter
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();
}
}
我的ManageUserFragment
@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?
如何传递数据以放置选择器意图,以便我们可以接收它 onActivityResult?