我的应用中有一个edittext,只接受数字。默认设置为0。但是当我进入一些umbers时,我想要覆盖左边的初始0。现在我对edittext有一些问题。例如,当我插入1时,我想要的是1,而不是01.我的代码就像,
value = (EditText)findViewById(R.id.value);
value.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3)
{
if(arg0.length()==0)
{
value.setText("0");
int i = value.getText().length();
value.setSelection(i);
}
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
我怎样才能实现它?或者有可能吗?
答案 0 :(得分:3)
您可以在xml文件中设置android:hint
。
例如,
<EditText
android:id="@+id/value"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="0"/>
答案 1 :(得分:2)
有很多选项可以帮助您实现目标。除了已经提到的那些之外,我会说EditText的属性android:selectAllOnFocus="true"
可能值得一看。这对于默认值很方便,并且与用户友好相比,更改值不需要任何“退格”。
答案 2 :(得分:0)
您可以在beforeTextChanged函数调用中将字符串更改为空,并将onTextChanged保持原样。
答案 3 :(得分:0)
而不是使用value.setText(“0”); 使用value.setHint(“0”);
答案 4 :(得分:0)
使用setHint(int)方法最初显示0。因此,当用户输入内容时,它会自动清除,您可以根据需要获取文本。