Android CountryCodePicker 将 Country 设置为 null



我使用 hbb20 的 CountryCodePickerProject 中的CountryCodePicker。

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

我使用此选取器来编辑他们的国家/地区,如果用户不更改其国家/地区,则我得到印度"IN"作为selectedCCPCountry,因为如果未设置国家/地区,defaultCCPCountry会自动返回印度。

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

谢谢!

所以我在 GitHub 上为此创建了一个问题,并得到了作者的快速回复:

似乎您的主要用例是选择没有电话的国家/地区 数字验证,我做对了吗?如果是这样,你应该尝试安卓 国家选择器(https://github.com/hbb20/AndroidCountryPicker)。它有出来 对非选择的框支持等等。请让我知道,如果 为您工作。

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

由于我不想撤消我已经拥有的所有代码,因此我做了一个临时解决方法。 mCountryChangedByUser 为假,只有在国家/地区代码选取器中选择国家/地区时才会变为真。

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

如果用户没有更改他的国家/地区,则只需在我的 saveUser() 函数中返回原始国家/地区。

if (mCountryChangedByUser) {

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

也许下次我会使用AndroidCountryPicker。

谢谢!

最新更新