Android - 替换片段并更改其TextView

时间:2014-05-18 10:37:59

标签: android android-fragments settext

我试图更改片段内的TextView文本,以替换同一活动中的旧片段。

我已经搜索了这个问题的现有答案,我找到了这两个,但解决方案对我来说似乎不起作用:

Dynamically change TextView in Fragment (public void processMessage)

Change TextView inside Fragment

问题在于,当我创建一个方法在我的新片段中设置TextView的文本时,它找不到我正在搜索的视图。

这里是必须替换旧片段的片段代码:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class Fragment_sbagliato extends Fragment {

public Fragment_sbagliato() {}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_sbagliato, container,
            false);
    return rootView;
}

public void myNewText(String[] text){
    TextView textView = (TextView)findViewById(R.id.answer);
    textView.setText(text[0]);
}

}

具体而言,错误是"答案无法解决或不是字段"。

有什么建议吗?

提前致谢!

2 个答案:

答案 0 :(得分:0)

这是编译错误 - 没有定义R.id.answer。这通常是因为java源文件导入平台“android.R”资源类而不是应用程序的特定“R”资源类,或者因为XML资源文件中的错误导致生成资源时出现问题。

答案 1 :(得分:0)

你什么时候调用方法myNewText? 提交片段事务后,将不会立即创建片段视图。最好的方法是,将你的答案字符串数组作为片段参数传递,然后覆盖片段调用的onActivityCreated方法调用findviewbyId设置数据

相关问题