我有一个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();
答案 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
。