내 응용 프로그램에는 여러 조각을 포함하는 작업 표시 줄 활동이 있습니다. 활동을 검색 할 때 결과는 새로운 단편으로 표시됩니다. 행운을 부르지 않고 제출 버튼을 클릭 한 후 키보드를 숨기려고했습니다. 당신은 내가 onqquery의 된 TextListener 내부 검색보기에 clearFocus를 불렀다 위의 코드에서 볼 수 있듯이 여기에 내 코드작업 표시 줄 검색 후 키보드 숨기기
public class SymptomNavigator extends ActionBarActivity implements
MainBodyArea.Communicator, SearchResult.communicator, OnClickListener {
SearchView searchView;
FragmentManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.symptom_navigator);
Button generateButton = (Button) findViewById(R.id.btn_Generate);
generateButton.setOnClickListener(this);
Button symptomListButton = (Button) findViewById(R.id.btn_ViewList);
symptomListButton.setOnClickListener(this);
if (findViewById(R.id.fragment_container) != null) {
if (savedInstanceState != null) {
return;
}
MainBodyArea firstFragment = new MainBodyArea();
firstFragment.setArguments(getIntent().getExtras());
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();
}
manager = getSupportFragmentManager();
mainFrag = (MainBodyArea) manager
.findFragmentById(R.id.mainBodyFragment);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
searchView = (SearchView) MenuItemCompat
.getActionView(searchItem);
final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
query.trim();
searchView.clearFocus();
if (FormValidator.isValidEntry(query)) {
respondToSearch(query);
}
return true;
}
};
searchView.setOnQueryTextListener(queryTextListener);
return true;
}
@Override
public void respondToSearch(String value) {
SearchResult newFragment = new SearchResult();
Bundle args = new Bundle();
args.putString(SearchResult.ARG_POSITION, value);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack("search");
getSupportFragmentManager().popBackStack("search", FragmentManager.POP_BACK_STACK_INCLUSIVE);
transaction.commit();
}
}
입니다. 새 조각 트랜잭션이 완료되면 키보드가 숨겨지고 다시 표시됩니다. 어떻게 작동하게합니까?
참고 : 또한,이 소프트 키보드를 항상 숨기려면 다음을 사용하려면
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
을 숨기려고 운
try {
InputMethodManager input = (InputMethodManager) getActivity()
.getSystemService(Activity.INPUT_METHOD_SERVICE);
input.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0);
}catch(Exception e) {
e.printStackTrace();
}
검색을 수행중인보기에서 창 토큰을 인수로 전달하십시오. 일반적으로 키보드를 연보기에 대해 창 토큰을 사용해야합니다. 단편에서 활동까지 콜백을 사용합니다. 검색이 완료되면 EditText.getWindowToken()을 사용하여 내용이 EditText에 입력됩니다. – Rarw