【发布时间】:2012-11-22 18:21:08
【问题描述】:
下午好。
我有一个可能包含数字和字母的 EditText。通过展开键盘,有没有办法以数字的形式展开呢?
如果我将 EditText 设为数字,我会这样做,但这不是我的情况。
非常感谢。
【问题讨论】:
-
你是在代码中做这个吗?您的意思是您没有将 EditText 标记为数字,但您想在某些情况下显示数字键盘?
下午好。
我有一个可能包含数字和字母的 EditText。通过展开键盘,有没有办法以数字的形式展开呢?
如果我将 EditText 设为数字,我会这样做,但这不是我的情况。
非常感谢。
【问题讨论】:
试试这个:
EditText myEditText = (EditText)findViewById(R.id.myEditText);
myEditText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
当你完成数字后,将其设置回字母数字..
【讨论】:
你可以:
你不能:
【讨论】:
使用 XML:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edittext"
android:inputType="number"/>
或
使用代码:
EditText editText=new EditText(this);
editText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
【讨论】:
在您的 oncreate 方法中,您可以放置以下代码:
final EditText myEditJava = (EditText) findViewById(R.id.myEdit);
myEditJava.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (s.toString().matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+"))
myEditJava.setInputType(InputType.TYPE_CLASS_PHONE);
else
myEditJava.setInputType(InputType.TYPE_CLASS_TEXT);
}
});
因此,当您输入第一个字符时,如果它将是一个数字值,则键盘将显示在数字输入模式下,否则显示在文本输入模式下。
【讨论】: