У меня есть оверлей на экране, который показывает несколько кнопок для управления этой функцией.Это наложение будет иметь динамический список кнопок, которые будут созданы на основе количества шагов.Пример, если шаги 3, тогда будет создана кнопка 3Я создал LinearLayout внутри этой кнопки будут созданы.Я создал метод, который установит все атрибуты кнопки, но каким-то образом он дает мне исключение нулевого указателя.
В onCreateView я инициализировал buttonArray.
Вот мой фрагмент:
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mContext = getActivity();
gc = GlobalClass.getInstance(mContext);
db = DataBaseHelper.getInstance(mContext);
sectionButtons = new Button[3];
/*if(savedInstanceState!=null)
mVisible = savedInstanceState.getBoolean("visible",false);*/
manager = SharedPreferenceManager.getInstance(mContext);
//check wether to play video in cover mode or another mode
inflater.inflate(R.layout.fragment_video_side_by_side, container, false);
}
и onViewCreated () Я вызываю мой метод addSections ():
// show overlay with buttons in onTouch
parentLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (!mVisible) {
overLay.setVisibility(View.VISIBLE);
addSections(3);
mVisible = true;
} else {
overLay.setVisibility(View.GONE);
mVisible = false;
}
}
return true;
}
});
Метод:
public void addSections(int numOfSection){
if(numOfSection==0)
return;
else {
for (int i = 0; i < numOfSection; i++) {
//set the properties for button
sectionButtons[i].setLayoutParams(new LinearLayout.LayoutParams(50, 50));
sectionButtons[i].setBackgroundResource(R.drawable.round_button);
sectionButtons[i].setText("Section "+i+"");
sectionButtons[i].setId(i);
//add button to the layout
mSectionLayout.addView(sectionButtons[i]);
}
}
}
mSectionLayout - мой родительский LinearLayout.Во время отладки я обнаружил, что мой sectionButtons не показывает ноль, но при установке атрибутов выдает исключение nullPointer.