0

我使用hbb20CountryCodePickerProject中的CountryCodePicker

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

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

我怎样才能将selectedCCPCountry或其他标志设置为nullor""以便在这种情况下我可以知道不要更改用户的数据?

谢谢!

4

1 回答 1

0

所以我在 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。

谢谢!

于 2021-06-28T16:22:12.397 回答