【问题标题】:How to allow the first digit in EditText to be a zero (Android)如何允许 EditText 中的第一个数字为零(Android)
【发布时间】:2013-12-30 05:36:04
【问题描述】:

我有一个 EditText 供用户输入电话号码,稍后将其保存到 sharedpreferences。但是如果第一个数字是 0,EditText 似乎会删除它,这是我不想要的。如何允许第一个数字为 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();

【问题讨论】:

    标签: java android android-edittext


    【解决方案1】:

    虽然我没有完全理解这个问题,但是如果您在任何地方使用 Integer,请使用 Strings 而不是 Integer。也使用editor.putString而不是editor.putInt。当您想将保存在SharedPreference 中的值用作整数时,将值从字符串转换回整数。它可能有助于保留0

    【讨论】:

    • 问题是,我已经用 android:inputType="number" 定义了 EditText,因为用户应该只能输入数字。假设我在 EditText 中输入了数字 0123。 javafile中这个EditText的第一个事件是:EditText etAnnonsNr = (EditText)findViewById(R.id.etAnnonsNr);如果我在这个之后直接放入system.out.println(etAnnonsNr),结果是123,并且0已经被删除了。 - 所以如果我将它更改为 java- 文件中的字符串也无济于事,因为零已经消失了......
    • 我现在感觉很愚蠢.. -我一直在排除错误的活动! -您的解决方案有效。谢谢!
    【解决方案2】:

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

    【讨论】:

    • 我现在感觉很愚蠢。我以为问题出在 javafile 中的 putInt 之前,但似乎我一直在对错误的活动进行故障排除! -您的解决方案有效。谢谢!
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2014-02-15
      • 1970-01-01
      • 2016-07-20
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多