내 Actionbar에 사용자 정의 ActionView를 추가했습니다. 사용자가 숫자를 입력하여 뭔가를 볼 수 있도록하기위한 것입니다. 그러나 레이아웃에 사용 된 EditText는 숫자의 imeType을 지정 했더라도 항상 전체 영숫자 키보드를 표시합니다. 나는 영숫자 키보드를 원하지 않는다. 젠장, 나는 +/- 유형 옵션조차 원하지 않아. 단지 0-9와 "완료." 검색을위한 내 EditText에서 어떻게 사용자 정의 키패드를 사용할 수 있습니까? 드롭 다운 키보드를 사용하는 방법이 있습니까? 해당 필드에 대해서만 사용자 지정 IME를 작성하려고했으나 허용되지 않습니다. 메뉴Android : 작업 모음의 접을 수있는 작업보기 용 맞춤 키패드?
XML : 작업 표시 줄 메뉴를 설정하는
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keypad_actionview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@color/White"
android:drawableLeft="@drawable/icon_channel_keypad"
android:drawablePadding="5dp"
android:inputType="number"
android:imeOptions="flagNoExtractUi"
/>
자바 : 액션 레이아웃
이<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_keypad"
android:icon="@drawable/ms_btn_keypad_sel"
android:title="Keypad"
android:showAsAction="ifRoom|collapseActionView"
android:actionLayout="@layout/keypad_actionview"/>
</menu>
XML은
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.number_menu, menu);
keypadMenuItem = menu.findItem(R.id.menu_keypad);
final EditText keypadText = (EditText) keypadMenuItem.getActionView();
keypadText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(final TextView textView, final int i, final KeyEvent keyEvent) {
keypadMenuItem.collapseActionView();
changeDisplayedNumber(Integer.valueOf(textView.getText().toString()), true);
textView.setText("");
return true;
}
});
keypadMenuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
startAutoHidePlayerControlsRunner();
return true; // Return true to collapse action view
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
stopAutoHidePlayerControlsRunner();
keypadText.setText("");
keypadText.requestFocus();
/*keypadText.setInputType(InputType.TYPE_CLASS_NUMBER);
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
if (inputMethodManager != null) {
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
}*/
return true; // Return true to expand action view
}
});
return true;
}
는 마지막에 코드를 주석 자바의 키보드를 바로 표시하도록 강요했지만, 그게 이상한 행동을 일으켰습니다. - 숫자 키보드가 나타납니다.
당신의'ExitText' (레이아웃 파일과 어떻게 액션 바에 추가하는지). – CommonsWare
내 메뉴 XML, actionView 용 레이아웃 및 내 onCreateOptions 용 Java를 추가했습니다. – Calvin
작업 표시 줄에'EditText'가있는 곳에서'inputType = "number"'를 사용하여 샘플 중 하나를 수정했습니다 (참고 : 광산은 접을 수 없음). XOOM에서는 제대로 작동했습니다. Transformer Prime에는 QWERTY 키보드가 있습니다. 4.0.3 에뮬레이터에서 제대로 작동했습니다. 그래서 ... 너 시험 할거야? – CommonsWare