我使用 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。
谢谢!