0
Я пытаюсь создать круг внутри фрагмента, и мне нужно изменить его цвет во время выполнения в будущем. , но метод setBackgroundDrawable
дает мне nullPointerException
.setBackgroundDrawable дать nullpointerexception в android
Я не могу понять, как я веб-разработчик, и я новичок в разработке 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;
}
}
эй Калян, спасибо большое. Это сработало. Можете ли вы дать мне быстрый совет, как вы отлаживали или узнавали. так это поможет мне в будущем? – swati
hi @swati, когда вы когда-либо использовали фрагмент, вам нужно получить представление с использованием вашего завышенного view.findviewById или есть метод, называемый getView в фрагменте, который вернет ваше завышенное представление, но оно будет использоваться после вызова onCreateView(). с использованием выше двух методов вы можете просмотреть фрагменты .. –
@swati getActivity.findViewById() используется для получения представления родительской активности, в которой добавлен ваш фрагмент ... но в большинстве случаев он не нужен. –