我正在为Android开发一个应用程序,我的EditText有问题:我无法在其上写数字。我创建了一个函数,以便我的用户在单击“确定”时可以在EditText中验证答案,但是,使用此功能,他们无法在我的EditTexts上写入数字。
这是我的函数代码:
ed.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
ed.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == 66){
if (ed.getText().toString().equals(rep)) {
k++;
if (k == 1) {
Intent ActivityTransition = new Intent(Level6f.this, Transition6.class);
startActivityForResult(ActivityTransition, KEY1);
}
}
else {
ed.getText().clear();
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vib.vibrate(50);
}
}
if (keyCode == 67) {
ed.getText().clear();
}
return true;
}
});
}
});
这是我的XML EditText的代码:
<EditText
android:layout_width="110dp"
android:layout_height="45dp"
android:inputType="textVisiblePassword"
android:id="@+id/editText"
android:textSize="22sp"
android:layout_above="@id/curseur"
android:layout_centerHorizontal="true"/>
答案 0 :(得分:3)
Use this line in your xml (EditText)
android:inputType="number|numberDecimal"
this line allows number and number decimal.
示例 -
<EditText
android:layout_width="110dp"
android:layout_height="45dp"
android:inputType="number|numberDecimal|textVisiblePassword"
android:id="@+id/editText"
android:textSize="22sp"
android:layout_above="@id/curseur"
android:layout_centerHorizontal="true"/>
答案 1 :(得分:2)
我认为你可以使用
android:imeOptions="actionDone"
在您的xml中而不是android:inputType="textVisiblePassword"
答案 2 :(得分:1)
创建自己的确定按钮。使用Tablerow环绕editText并将ok按钮放在那里。
<TableRow
android:id="@+id/tableRow1"
android:layout_width="110dp"
android:layout_height="45dp"
android:layout_above="@id/curseur" >
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:id="@+id/editText"
android:textSize="22sp"
android:layout_centerHorizontal="true"/>
<Button
android:id="@+id/okbutton"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="Ok"
android:textColor="#000000"
android:textSize="22sp"
android:textStyle="bold" />
</TableRow>