私はthisの解決策に従いましたが、他にもいくつかのものがありましたが、私が何かを見逃したように見えます。onActivityResultが呼び出されていない - おそらく他のフラグメントと「混合」されていますか?
Fragment A
では、ユーザーがボタンをクリックすると、マップ内の場所が選択されます。
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
try {
startActivityForResult(builder.build(getActivity()), PLACE_PICKER_REQUEST);
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
場所を選択した後も、同じ断片になりますが、アドレスは編集テキストになります。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("checkCall", "here");
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == Activity.RESULT_OK) {
// get the address
Place place = PlacePicker.getPlace(getActivity().getApplicationContext(), data);
String address = String.format("Place: %s", place.getAddress());
Log.d("address", address);
editTextBizAddress.setText(address);
} else if (resultCode == Activity.RESULT_CANCELED){
dialog("Error in getting the address");
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
だから、私の親アクティビティに - MainActivity
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1001:
if(resultCode == RESULT_OK){
String tab = data.getExtras().getString("tab");
if (tab.equals("profile")) {
viewPager.setCurrentItem(2);
}
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
View focus = getCurrentFocus();
if (focus != null) {
hiddenKeyboard(focus);
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
View focus = getCurrentFocus();
if (focus != null) {
hiddenKeyboard(focus);
}
}
});
}
break;
case 1:
super.onActivityResult(requestCode, resultCode, data);
break;
}
}
は、私はそれが一度だけ働く作ることができました。しかしそれ以降、それはもう働きません。私はそれが一度どのように動作するのか分かりませんが。
onActivityResult
がMainActivity
にありますか?他のフラグメントもをMainActivity
に使用すると混乱する可能性はありますか?
EDIT: requestCode
は異なる値を持っていますが、まだ同じので、私はMainActivity
でonActivityResult
を変更した - フラグメントでonActivityResult
呼び出されません。
Googleのサンプルをチェックしましたか:https://github.com/googlesamples/android-play-places/blob/master/PlacePicker/Application/src/main/java/com/example/google/playservices/placepicker/ PlacePickerFragment.java –
@MavyaSoniはちょうど今チェックしました。違いはありません – August