努力在活动开始时启动数字小键盘

时间:2011-11-09 06:47:00

标签: android numeric-keypad

我的活动中有很少的TextView,当活动开始时我想要显示软数字键盘或该活动应该始终显示键盘。

我试过了:

  1. 在清单中为活动设置android:windowSoftInputMode="stateAlwaysVisible"但没有效果。
  2. 在活动onCreate中添加了此代码,它显示的是字母数字小键盘,但不显示数字。
  3. InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

    需要帮助。

3 个答案:

答案 0 :(得分:1)

我已经以动态的方式尝试了这个EditText ...这个方法对于TextView也是一样的..当活动开始时,把焦点放在那个textView上,这样它就可以显示你的键盘

    boolean checkFocus=EditText.requestFocus();
    Log.i("CheckFocus", ""+checkFocus);
    if(checkFocus==true)
    {
    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    EditText.setInputType(InputType.TYPE_CLASS_PHONE); [select Input type as according to ur requirement]
    mgr.showSoftInput(EditText, InputMethodManager.SHOW_IMPLICIT);
    }

答案 1 :(得分:1)

将编辑文本作为第一个子文件放在xml文件中。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             ............
               .........>
 <EditText android:layout_width="0dp"
    android:layout_height="0dp"/>
..............
................
</LinearLayout>

答案 2 :(得分:1)

要在我按照以下步骤使用的活动开始时弹出一个数字键盘:

布局中创建编辑文本字段为:

<EditText
        ...
        android:inputType="number"    
        ...  />

但是因为你需要在没有任何编辑文本的情况下使用键盘,所以给出

 <EditText
        ...
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:inputType="number"    
        ...  />

在功能 onCreate()显示软键盘

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

最重要的是要专注于在 onResume 方法中编辑文字。

    @Override
    public void onResume() {
        super.onResume();
        editText.setFocusableInTouchMode(true);
        editText.requestFocus();
    }