如何允许EditText中的第一个数字为零(Android)

时间:2013-12-12 00:34:11

标签: java android android-edittext

我有一个EditText供用户输入电话号码,稍后会保存到sharedpreferences。但EditText似乎删除了第一个数字,如果它是0,我不想要。如何允许第一个数字为0?我尝试使用android:digits =“0123456789”,android:inputType =“phone”和android:inputType =“number”。 XML:

       <EditText
    android:id="@+id/etAnnonsNr"
    android:layout_width="fill_parent"
    android:layout_height="25sp"
    android:layout_alignLeft="@+id/etAnnonsText"
    android:layout_below="@+id/etAnnonsText"
    android:layout_marginTop="15dp"
    android:background="@drawable/boxboarder"
    android:nextFocusDown="@+id/etAnnonsPris"
    android:hint="Ditt telefonnummer"
    android:inputType="number" />

Java:

final EditText etAnnonsNr = (EditText)findViewById(R.id.etAnnonsNr);

if (etAnnonsNr.getText().toString().matches("")){
                editor.putInt("AnnonsNr", 0);
            }else{
                editor.putInt("AnnonsNr", Integer.parseInt(etAnnonsNr.getText().toString()));
            }
editor.commit();

3 个答案:

答案 0 :(得分:1)

虽然我没有完全得到问题,但如果您在任何地方使用Integer,请使用Strings代替Integer。也可以使用editor.putString代替editor.putInt。如果要将SharedPreference中保存的值用作Integer,请将值从String转换回Integer。它可能有助于保留0

答案 1 :(得分:1)

将你的no存储为字符串,即putString而不是putInt,并且在检索数字时只需将字符串解析为int。就是这样。

答案 2 :(得分:0)

将您的android:inputType="number"更改为android:inputType="phone"。不要解析为Integer