如何覆盖edittext中的值

时间:2011-12-23 06:42:08

标签: android android-edittext

我的应用中有一个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
        }
    });

我怎样才能实现它?或者有可能吗?

5 个答案:

答案 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。因此,当用户输入内容时,它会自动清除,您可以根据需要获取文本。