【问题标题】:Android CountryCodePicker set country to nullAndroid CountryCodePicker 将国家设置为空
【发布时间】:2023-04-03 10:48:01
【问题描述】:

我使用CountryCodePickerProject by hbb20 中的CountryCodePicker

我从数据库中获取用户的数据,有时出于某种原因用户将“”(空字符串)保存为他们的国家/地区。

我使用这个选择器来编辑他们的国家,如果用户没有改变他的国家,那么我会得到印度“IN”作为selectedCCPCountry,因为如果没有设置国家,defaultCCPCountry 会自动返回印度。

如何将selectedCCPCountry 或其他标志设置为null"",以便在这种情况下我可以知道不要更改用户的数据?

谢谢!

【问题讨论】:

  • 您想检查内存中用户的国家/地区是否为空或为空,如果是,您会将空国家/地区编辑为默认国家/地区,即 IN,对吗?
  • 用户的国家总是一个字符串,要么是一个名字,要么只是空的“”。如果它是“”,我想将国家设置为空,所以当我退出屏幕并保存新数据时,我会知道不要保存任何东西。目前在这种情况下,该国家/地区默认为印度。

标签: android mobile country-codes mobile-country-code


【解决方案1】:

所以我在 GitHub 上为此创建了一个 issue,并从 author 获得了一个快速的 response

您的主要用例似乎是选择没有电话的国家/地区 号码验证,我说对了吗?如果是这样,你应该试试安卓 国家选择器 (https://github.com/hbb20/AndroidCountryPicker)。它已经出 非选择框支持等等。请让我知道是否 适合你。

这是我的回复和我的临时解决方法:

因为我不想撤消我已经拥有的所有代码,所以我做了一个临时解决方法。 mCountryChangedByUser 为 false,只有在 CountryCodePicker 中选择了一个国家时才变为 true。

mCountryCCP.setOnCountryChangeListener(new CountryCodePicker.OnCountryChangeListener() {
    @Override
    public void onCountrySelected() {
        mCountryChangedByUser = true;
        mCountryTextTV.setText(mCountryCCP.getSelectedCountryName());
        mUser.setCountry(mCountryCCP.getSelectedCountryNameCode());
    }
});

如果用户没有更改他的国家,那么只需在我的 saveUser() 函数中返回原来的国家。

如果(mCountryChangedByUser){

    userUpdate.setCountry(mCountryCCP.getSelectedCountryNameCode() );  

} else {  
    userUpdate.setCountry(mUser.getCountry());  
}

也许下次我会使用 AndroidCountryPicker。

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多