我正在尝试编写一个 fragment ,它有一个在 TextView 中设置某些内容的方法。所以我有以下 fragment :
public class DetailFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment, container, false);
// setText("set it to something");
return view;
}
public void setText(String item) {
TextView view = (TextView) getView().findViewById(R.id.detailsText);
view.setText(item);
}
}
这很好用。它显示 TextView 。我现在想以编程方式编辑 TextView 中的文本。我想我应该首先从 fragment 中编辑它。所以我已经有了应该能够做到这一点的方法。当我现在取消注释 setText("set it to some");
时,它给了我一个 InflateException: Error inflateing classfragment.
,我不知道为什么。
有人知道我该如何解决这个问题吗?
最佳答案
这样做
class ... extends Fragment{
private TextView _myTextView;
onCreateView(...){
//inflate view
_myTextView = (TextView)view.findViewById(R.id.text_view);
editText("blablabla");
}
private void editText(String text){
_myTextView.setText(text);
}
}
Ypu 必须初始化 onCreateView 中的所有 UI 元素,以便您从正在膨胀的 View 中膨胀!
关于java - 如何在 fragment 中使用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19209565/