According to this code I am trying to use button which is in the first layout of viewpager. First layout dowloand to automatically so I need to use button before working of addOnPageListener methods. But it gave me this error:
'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
Here is my code:
public class SurveyFragment extends Fragment implements View.OnClickListener, DatePickerDialog.OnDateSetListener{
View view;
private ViewPager viewPager;
private int[] layouts={R.layout.question1, R.layout.question2};
private MyPagerAdapter myPagerAdapter;
private LinearLayout Dots_Layout;
private ImageView[] dots;
private Button buttonNext;
private Button buttonBirthDate;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.survey_layout, container, false);
viewPager=(ViewPager)view.findViewById(R.id.viewPager);
myPagerAdapter= new MyPagerAdapter(layouts,getActivity());
viewPager.setAdapter(myPagerAdapter);
Dots_Layout=(LinearLayout)view.findViewById(R.id.dotsLayout);
buttonNext=(Button)view.findViewById(R.id.buttonNext);
buttonNext.setOnClickListener(this);
createDots(0);
if(viewPager.getCurrentItem()==0){
buttonBirthDate= (Button) view.findViewById(R.id.editTextBirthdate);
buttonBirthDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
datePicker();
}
});
}
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels){
}
@Override
public void onPageSelected(int i) {
/*if(i==0){
}*/
createDots(i);
if(i==layouts.length-1){
buttonNext.setText("Finish");
}else{
buttonNext.setText("Next");
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
return view;
}
if I write these codes in the if(i==0) loop, button works after return back from question2 layout.
buttonBirthDate= (Button) view.findViewById(R.id.editTextBirthdate);
buttonBirthDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
datePicker();
}
});
How can I use button of question1 layout?