1

PlaceAutocompleteFragment 实现工作正常,因为它应该工作。在单击 PlaceAutocompleteFragment 时,我可以搜索地点。

PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)
            getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);

    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(Place place) {
            Toast.makeText(AroundMe.this, "" + place.getName(), Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onError(Status status) {
            Toast.makeText(AroundMe.this, "" + status, Toast.LENGTH_SHORT).show();
        }
    });

在搜索结果项目列表上单击后,我可以在 onPlaceSelected() 方法中获取 Places 详细信息。

这是我正在寻找的:

  1. 点击 PlaceAutocompleteFragment,KeyBoard 出现,右下角有搜索按钮。我想处理那个搜索按钮上的事件。但目前点击搜索按钮,键盘隐藏。

我已经尝试过这种方式,但它不起作用。

EditText editText = (EditText) autocompleteFragment.getActivity().findViewById(R.id.place_autocomplete_search_input);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                    Toast.makeText(AroundMe.this, "check", Toast.LENGTH_SHORT).show();
                }
                return false;
            }
        });

也尝试过这种方式,但仍然无法正常工作。

EditText editText = (EditText) autocompleteFragment.getActivity().findViewById(R.id.place_autocomplete_search_input);
    editText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
            if (keyEvent.getAction()== KeyEvent.KEYCODE_SEARCH){
                switch (keyCode){
                    case KeyEvent.KEYCODE_SEARCH:
                        Toast.makeText(AroundMe.this, "check" , Toast.LENGTH_SHORT).show();
                        break;
                }
            }
            return false;
        }
    });
4

0 回答 0