[英]Setter sets String value but Getter returns null or default String value
我想從editText獲取字符串值,所以我使用TextWatcher onTextChanged方法在私有String cName上設置String值。 它設定並獲得正確的價值。
@TargetApi(11)
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup parent, Bundle savedInstanceState){
View v = inflater.inflate(R.layout.fragment_add,parent,false);
dNameText = (EditText) v.findViewById(R.id.d_name);
dNameText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
dCloud.setName(s.toString());
Log.e(TAG,"name " + dCloud.getName());
}
});
這是我的二傳手和getter 公共課程
private String cName = "ggg";
public String getName(){return cName;}
public void setName(String name) {cName = name;}
但是,當我想在其他方法或其他方法中使用getter時,總是得到私有的String cName默認值“ ggg”,或者如果我留空,我將得到null。 為什么私有String cName不能保持設定值,我該如何解決?
除非從UI更改TextView的文本,否則cName的值不會更改。
我建議在代碼中的任何地方使用cName之前,都要對其默認值(或簡單地為null)進行測試:
如果cName等於其默認值,則用戶尚未更改文本字段。 否則,文本字段已更改,您可以通過調用getName()獲得新值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.