메신저 사용 searchview을 엽니 다하지searchview 초점을 얻을 수 있지만, 키보드는 내 문제는 내가 검색 아이콘 키보드를 클릭 할 때 열리는 도착하지만 searchview 내 코드는 아래에 집중하지 않는다는 것입니다 검색 기능을
menu.xml
아래<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/send_invitation"
android:icon="@drawable/send_icon_invite_participant"
android:orderInCategory="93"
android:title="@string/invitation"
app:showAsAction="always">
</item>
<item
android:id="@+id/search"
android:orderInCategory="100"
app:actionViewClass="android.support.v7.widget.SearchView"
android:icon="@drawable/search_icn"
android:title="@string/search"
app:showAsAction="always"/>
</menu>
은이 집중되지 않는 이유를 도와주세요 찾을 수
@Override
public void onCreateOptionsMenu(final Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.invite_participant, menu);
final MenuItem searchItem = menu.findItem(R.id.search);
SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE);
final SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
EditText searchEditText = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
searchEditText.setTextColor(getResources().getColor(R.color.colorAccent));
searchEditText.setHintTextColor(getResources().getColor(R.color.colorAccent));
searchItem.expandActionView();
ImageView searchIcon = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_button);
searchIcon.setImageResource(R.drawable.search_icn);
ImageView searchCloseIcon = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchCloseIcon.setImageResource(R.drawable.reject_icon_notification);
if (searchView != null) {
searchView.setSearchableInfo(searchManager.getSearchableInfo(activity.getComponentName()));
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setItemsVisibility(menu, searchItem, false);
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
searchView.clearFocus();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
if (adapter != null) {
adapter.fliter(newText);
}
return false;
}
});
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
setItemsVisibility(menu, searchItem, true);
return false;
}
});
}
}
private void setItemsVisibility(Menu menu, MenuItem exception, boolean visible) {
for (int i=0; i<menu.size(); ++i) {
MenuItem item = menu.getItem(i);
if (item != exception) item.setVisible(visible);
}
}
메신저없는 방법에서 코드 내가 실수를 저질렀던 곳을 찾는데 도움이된다.
불행하게도이 –
내 업데이트 된 대답하려고 조각 클래스입니다 –
미스터 7 @ 응답 –