2016-08-09 8 views
1

메신저 사용 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); 
    } 
} 

메신저없는 방법에서 코드 내가 실수를 저질렀던 곳을 찾는데 도움이된다.

답변

1

활동 코드 onCreate에 아래 코드를 추가하여이를 달성 할 수 있습니다.

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

또는 AndroidManifest를 파일에이 줄을 추가하여

android:windowSoftInputMode="stateHidden" 

편집 :

당신은 초점 이러한 라인을 추가 할 수 있습니다이

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 
+0

불행하게도이 –

+0

내 업데이트 된 대답하려고 조각 클래스입니다 –

+0

미스터 7 @ 응답 –

1

같은 것을 시도 searchview.

searchView.setFocusable(true); 
    searchView.requestFocus(); 
    searchView.requestFocusFromTouch(); 

작동하지 않으면 먼저 검색보기를 확장 한 다음 포커스를 요청하십시오.

+0

내가이 줄을 추가해야하는 곳에서 귀하의 응답에 너무 감사드립니다. –