2013-06-05 87 views
1

從editext空值我與編輯文本的一個問題......在這裏,我會考慮我的問題讓android系統

  1. 解釋我宣佈fragmentactivity片段。
  2. 在該片段中,我有一個edittext。
  3. 我有一個fragmnetactivity的按鈕。
  4. 如果我點擊那個按鈕,我需要從那個在片段中的edittext獲取值。
  5. 爲此,我在全局聲明瞭edittext。
  6. 它要求我用「靜態」聲明。
  7. 直到這是好的,但獲取值時,它是空值。
  8. 我認爲這個問題是通過聲明爲靜態的。

我嘗試了所有其他方式,但沒有找到好的解決方案。 我能知道我有... 希望我給做了故障所需的詳細信息以清除我的question.If你覺得它不夠請讓我知道吧..

在片段....
edt =(EditText)rootView.findViewById(R.id.note);

在fragmentactivity

static EditText edt; 
static String a; 
button.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

     a = edt.getText().toString(); 
     Log.v("a",""+a); 
} 
}); 
+1

發佈您的代碼,你有什麼嘗試 –

+0

發佈您的代碼.. –

+0

你可以顯示你的代碼?如果您全局定義了EditText,則不需要將其設置爲靜態,所以可能會發佈一個名稱與定義爲 –

回答

2

我在android中得到了一個很好的解決方案....如果你在fragment中聲明瞭editext並且在活動中獲取值,它會給出null值,但是android的最佳部分是如果你沒有在計劃中得到它它將顯示remaing 25個字母......所以,你必須實現它在anothe方式 我會sugest你一個實現 從EditText上去除靜電,並保持它的片段......

edt.addTextChangedListener(new TextWatcher() { 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, 
        int after) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void afterTextChanged(Editable s) { 
       // TODO Auto-generated method stub 
       Editable b=s; 
       a=b.toString();//use this a where ever you want in activity 


      } 
     }); 
+0

thanx這種解決方案 – Ramz

0

您定義EditText上。但是你是否通過調用findViewById或者什麼來初始化它?

還是你定義了兩次?

+0

這應該是一個評論的另一種解決方案。 –

+0

yaa其實我的fragmentactivity由一個片段組成,這個片段由edittext組成,所以我通過使用findviewbyid來調用它 – Ramz

+0

不,我沒有定義過它的兩倍 – Ramz