所以我在 GitHub 上为此创建了一个问题,并得到了作者的快速回复:
似乎您的主要用例是选择没有电话号码验证的国家,我说对了吗?如果是这样,您应该尝试 Android Country Picker ( https://github.com/hbb20/AndroidCountryPicker )。它具有对非选择的开箱即用支持等等。请让我知道这是否适合您。
这是我的回复和我的临时解决方法:
因为我不想撤消我已经拥有的所有代码,所以我做了一个临时解决方法。mCountryChangedByUser 为假,仅当在 CountryCodePicker 中选择了一个国家时才变为真。
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。
谢谢!