簡體   English   中英

設置器設置字符串值,但Getter返回null或默認字符串值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM