我试图更改片段内的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]);
}
}
具体而言,错误是"答案无法解决或不是字段"。
有什么建议吗?
提前致谢!
答案 0 :(得分:0)
这是编译错误 - 没有定义R.id.answer。这通常是因为java源文件导入平台“android.R”资源类而不是应用程序的特定“R”资源类,或者因为XML资源文件中的错误导致生成资源时出现问题。
答案 1 :(得分:0)
你什么时候调用方法myNewText? 提交片段事务后,将不会立即创建片段视图。最好的方法是,将你的答案字符串数组作为片段参数传递,然后覆盖片段调用的onActivityCreated方法调用findviewbyId设置数据