2013-06-05 86 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