EditText:如何在键入时显示数字?

时间:2013-04-04 20:45:49

标签: android android-widget

我的应用程序中有三个EditText小部件,其中一个小部件的XML如下所示。它们主要起作用,但问题是实际的小部件位于我的设备屏幕的底部。当我点击小部件,并显示数字小键盘时,它完全覆盖文本输入窗口,我无法看到我正在键入的数字。我可以修改TextView,以便在我的设备上显示键盘时,它还会显示我当前正在键入的号码吗?

<EditText
    android:id="@+id/EditTextPrices"            android:layout_width="100dip"
    android:layout_height="wrap_content"        android:inputType="number|numberDecimal"
    android:singleLine="true"                   android.imeOptions="actionDone"/>

另一个问题是,当我完成键入一个数字,而不是将我返回到主活动屏幕时,它会打开下一个TextEdit小部件的数字小键盘。我不希望这种情况发生。我曾经以为设置android.imeOptions =“actionDone”会导致键盘消失并在我输入数字后完成,但不是这样。如何阻止“下一个”窗口出现?

3 个答案:

答案 0 :(得分:1)

将android:windowSoftInputMode =“adjustPan”添加到活动的清单中。这将导致活动向上滚动,以便焦点编辑文本始终在屏幕上。

答案 1 :(得分:1)

查看将android:windowSoftInputMode添加到清单文件中。 “adjustPan”因为它的价值可能就是你想要的,虽然我发现当你输入内容的时候,它有时候无法解释在软键盘上方占据的空间。

答案 2 :(得分:1)

使用adjustPan的其他建议是好的,另一个想法是将您的布局放在滚动视图中。

关于你的第二个问题,你如何处理actionDone?

例如,这就是我隐藏键盘的方式(或者在按完键盘后做任何你想做的事情)。

final EditText editTextPrices = (EditText) findViewById(R.id.editTextPrices);
editTextPrices.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView view, int actionID, KeyEvent event) {
        if (actionID == EditorInfo.IME_ACTION_DONE) {
            InputMethodManager imm = (InputMethodManager) MyClass.this.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(bugemailaddress.getWindowToken(), 0);
            // DO OTHER HANDLING OF INPUT HERE
            return true;
        }
        return false;
    }
 });