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 详细信息。
这是我正在寻找的:
- 点击 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;
}
});