我倾向于使用字体片段和片段控制 为什么以下代码会产生错误?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rooo = inflater.inflate(R.layout.din2, container, false);
TextView tv1=(TextView) rooo.findViewById(R.id.tv1);
Typeface yaghut=Typeface.createFromAsset(getActivity().getAssets(), "font/BKOODB.ttf");
tv1.setTypeface(yaghut);
return rooo;
}
}
这个错误
答案 0 :(得分:3)
onCreateView
仅应返回表示片段的视图。 View上的其他操作应该在另一个回调onViewCreated
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.din2, container, false);
}
@Override
public void onViewCreated (View view, Bundle savedInstanceState) {
TextView tv1=(TextView) view.findViewById(R.id.tv1);
Typeface yaghut=Typeface.createFromAsset(getActivity().getAssets(), "font/BKOODB.ttf");
tv1.setTypeface(yaghut);
}
答案 1 :(得分:1)
你需要改变:
TextView tv1=(TextView) r.findViewById(R.id.tv1);
到
TextView tv1=(TextView) rooo.findViewById(R.id.tv1);
因为TextView
tv1
个ID必须位于din2
布局上。
答案 2 :(得分:0)
您正在创建一个名为rooo
的视图,但您要返回一个名为roo
的视图...现在将所有roo
替换为rooo
,如下所示......
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rooo = inflater.inflate(R.layout.din2, container, false);
TextView tv1=(TextView) rooo.findViewById(R.id.tv1);
Typeface yaghut=Typeface.createFromAsset(getActivity().getAssets(), "font/BKOODB.ttf");
tv1.setTypeface(yaghut);
return rooo;
}
}