ActionBarSherlock을 사용 중입니다. MenuItem.SHOW_AS_ACTION_ALWAYS를 사용하여 EditText를 표시하려고합니다. 그것은 막대의 전체 너비를 소요하고 원하는대로 보여줍니다. 하지만 TextWatcher를 추가하는 데 문제가 있습니다. 그래서 여기 허용 대답에 따라MenuItem.SHOW_AS_ACTION_ALWAYS가있는 ActionBarSherlock 내에서 EditText에 TextWatcher 추가
: http://goo.gl/ite6h 나는 쓰기 :
EditText search;
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
menu.add(0, 1, 1, R.string.inlineSearch).setIcon(R.drawable.action_search).setActionView(search).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
return super.onCreateOptionsMenu(menu);
}
private TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
Log.e("TextWatcher","after");
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
Log.e("TextWatcher","before");
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.e("TextWatcher","onText");
}
};
@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
Log.e("onOptions",""+item.getItemId()); // Line 150
switch (item.getItemId()) {
case 1:
search = (EditText) item.getActionView();
search.addTextChangedListener(filterTextWatcher);
search.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
return true;
}
문제는, 라인 (150)은 (더 로그)에 도달하지 않습니다와 아무것도 청취자는 검색 (글고 치기)에 추가하지 않습니다.
누구나 올바른 방향으로 나를 가리킬 수 있습니까? 참고로
는 "EditTextHoloDark"테마 -' @ 스타일에 대한 코드를 게시하시기 바랍니다 수/글고 치기 HoloDark' – Wesley
나를 위해 일했습니다. 감사! – dmon