我试图在片段中创建一个圆,以后我需要在运行时更改其颜色。
但是方法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;
}
}
最佳答案
更改此行。
circle_holder = (View)getActivity().findViewById(R.id.cicle);
进入
circle_holder = (View)rootView .findViewById(R.id.cicle);