1

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

  1. 我在 fragmentactivity 中声明了一个片段。
  2. 在那个片段中,我有一个编辑文本。
  3. 我在fragmnetactivity中有一个按钮。
  4. 如果我单击该按钮,我需要从片段中的编辑文本中获取值。
  5. 因此,我在全球范围内声明了edittext。
  6. 它要求我用“静态”声明。
  7. 在此之前它很好,但是在获取值时它给出了空值。
  8. 我认为问题是通过将其声明为静态而发生的。

我尝试了所有其他方法,但没有找到好的解决方案。我能知道我做错了什么吗...希望我已经提供了必要的详细信息来解决我的问题。如果您觉得不够,请告诉我..

在片段中......
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);
}
});
4

2 回答 2

2

我对此有一个很好的解决方案....在android中,如果您在片段中声明editext并在活动中获取值,它将给出空值,但android最好的部分是如果您没有在计划A中获得它,它将显示remaing 25字母......所以你必须以另一种方式实现它我会建议你一种实现从编辑文本中删除静态并将其保存在片段中......

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


            }
        });
于 2013-06-05T12:40:35.613 回答
0

您定义了 EditText。但是您是否通过调用 findViewById 或其他方式对其进行了初始化?

还是你定义了两次?

于 2013-06-05T12:09:09.427 回答