从android中的edittext获取空值

时间:2013-06-05 11:55:29

标签: android android-fragments android-edittext

我遇到了编辑文本的问题...这里我将解释我的问题

  1. 我在片段活动中声明了一个片段。
  2. 在该片段中,我有一个edittext。
  3. 我有一个fragmnetactivity按钮。
  4. 如果我点击该按钮,我需要从该编辑文本中获取片段中的值。
  5. 因此,我在全球范围内声明了edittext。
  6. 它要求我用“静态”声明。
  7. 在此之前它很好,但在获取值时它会给出空值。
  8. 我认为通过将其声明为静态来解决问题。
  9. 我尝试了所有其他方法,但没有找到好的解决方案。 我能知道我做了多少错... 希望我已经提供了必要的细节来澄清我的问题。如果你感觉不够,请让我知道..

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

    片段活动

    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);
    }
    });
    

2 个答案:

答案 0 :(得分:2)

我得到了一个很好的解决方案....在android中如果你在片段中声明editext并获取活动中的值它将给出null值但是android的最好的部分是如果你不在计划A中得到它它会显示剩余的25个字母...所以你必须以其他方式实现它 我会为你提供一个实现 从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


            }
        });

答案 1 :(得分:0)

您定义了EditText。但你是通过调用findViewById或其他东西来初始化它的吗?

还是你定义了两次?