我正在尝试在片段中创建一个圆圈,我需要在将来改变它在运行时的颜色。
但方法setBackgroundDrawable
给了我nullPointerException
。
我无法理解,因为我是网络开发人员,而且我是Android开发的新手。请帮帮我。
代码在
之下 public class tester extends Fragment {
private View circle_holder;
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.today, container, false);
circle_holder = (View)getActivity().findViewById(R.id.cicle);
ShapeDrawable mDrawable = new ShapeDrawable(new OvalShape());
mDrawable.getPaint().setColor(Color.RED);
if (Build.VERSION.SDK_INT >= 16){
circle_holder.setBackground(mDrawable);
}
else{
circle_holder.setBackgroundDrawable(mDrawable);
}
return rootView;
}
}
答案 0 :(得分:3)
更改此行。
circle_holder = (View)getActivity().findViewById(R.id.cicle);
到
circle_holder = (View)rootView .findViewById(R.id.cicle);