我的应用程序有一个带有viewPager和4个片段的活动。在一个片段中,我添加了一个Google SupportPlaceAutocompleteFragment
和
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.area_swipe_fragment, container, false); SupportPlaceAutocompleteFragment autocompleteFragment = (SupportPlaceAutocompleteFragment) getChildFragmentManager().findFragmentById(R.id.place_autocomplete_fragment); autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() { @Override public void onPlaceSelected(Place place) { Toast.makeText(ctx, "do something", Toast.LENGTH_SHORT).show(); } @Override public void onError(Status status) { } }); return view; }
我的问题是onPlaceSelectedListener
永远不会被解雇,而我无法获得所选地点的结果。而是被解雇onActivityResults()
放置在第二个片段中。我尝试onActivityResults()
在第一个片段中使用a ,但是它不会被触发,总是在第二个片段中执行一个。
有任何想法吗?
从文档:
如果您的片段嵌套在另一个片段中,则您的应用程序还必须将onActivityResult()调用转发到包含的片段,如以下代码片段所示:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); autocompleteFragment.onActivityResult(requestCode, resultCode, data); }
也许这就是解决方案。