我正在为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"/>
我认为你可以使用
android:imeOptions="actionDone"
在您的xml中,而不是android:inputType="textVisiblePassword"
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"/>
创建自己的ok按钮。用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>