在 PagerAdapter 中将值设置为文本视图时出现空指针异常



>我有一个主活动,我在布局中设计了一个查看页面适配器,我有 4 个布局,它们正在迭代并在查看页面适配器中的下一个按钮上显示布局我无法将文本设置为任何文本视图或编辑布局中的文本,任何人都可以帮助我解决这个问题,当我设置文本时出现空指针异常。

我的代码片段如下

public class Submit_form extends AppCompatActivity {
private ViewPager viewPager;
private MyViewPagerAdapter myViewPagerAdapter;
private LinearLayout dotsLayout;
private TextView[] dots;
private int[] layouts;
private Button btnSkip, btnNext;
String[] board_size = {"Select Your Size", "8 x 6 ft", "10 x 8 ft", "12 x 8 ft", "12 x 10 ft", "16 x 10 ft", "16 x 12 ft", "20 x 10 ft", "22 x 10 ft", "24 x 12 ft", "30 x 10 ft", "40 x 10 ft", "50 x 10 ft", "60 x 10 ft", "70 x 10 ft", "80 x 10 ft"};
String nameInput1,nameInput2,nameInput3,nameInput4,nameInput5,nameInput6,nameInput7, nameInput8,nameInput9,nameInput10,nameInput11,nameInput12,nameInput13,nameInput14,nameInput15,nameInput16,nameInput17,nameInput18,nameInput19,nameInput20,nameInput21,nameInput22,nameInput23, nameInput24, nameInput25, nameInput26, nameInput27, nameInput28, nameInput29, nameInput30, nameInput31, nameInput32, nameInput33,nameInput34,nameInput35,nameInput36,nameInput37,nameInput38,nameInput39;

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://docs.google.com/a/aishwaryaled.com/forms/d/e/")
.build();
final QuestionsSpreadsheetWebService spreadsheetWebService = retrofit.create(QuestionsSpreadsheetWebService.class);

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Making notification bar transparent
if (Build.VERSION.SDK_INT >= 21) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
setContentView(R.layout.activity_submit_form);

viewPager = (ViewPager) findViewById(R.id.view_pager);
viewPager.setOffscreenPageLimit(4);
dotsLayout = (LinearLayout) findViewById(R.id.layoutDots);
btnSkip = (Button) findViewById(R.id.btn_skip);
btnNext = (Button) findViewById(R.id.btn_next);


// layouts of all welcome sliders
// add few more layouts if you want
layouts = new int[]{
R.layout.welcome_slide1,
R.layout.welcome_slide2,
R.layout.welcome_slide3,
R.layout.welcome_slide4};
// adding bottom dots
addBottomDots(0);
// making notification bar transparent
changeStatusBarColor();
myViewPagerAdapter = new MyViewPagerAdapter(getApplicationContext());
viewPager.setAdapter(myViewPagerAdapter);
viewPager.addOnPageChangeListener(viewPagerPageChangeListener);


btnSkip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// checking for last page
// if last page home screen will be launched
int current = getItem(+1);
if (current < layouts.length) {
// move to next screen
viewPager.setCurrentItem(current);
}                  

MyViewPager适配器类

public class MyViewPagerAdapter extends PagerAdapter {
private LayoutInflater layoutInflater;
private Context mContext;
TextView textView37;
EditText edtxt12;
public MyViewPagerAdapter(Context context) {
this.mContext = context;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Log.e("Position:::::::::",Integer.toString(layouts[position])+":::::Child Count::::::"+container.getChildCount());
View view = layoutInflater.inflate(layouts[position], null);
Log.e("View::::::::",view.toString());
textView37=(TextView)view.findViewById(R.id.textView37);
**textView37.setText("0");**//getting error Null pointer exception here 
container.addView(view);
return view;
}
@Override
public int getCount() {
return layouts.length;
}
@Override
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view = (View) object;
container.removeView(view);
}
}

您能否在膨胀 XML 文件时尝试精确视图组。

View view = layoutInflater.inflate(layouts[position], container, false);

检查您的layouts[position]是否包含R.id.textView37TextView

我认为您的子视图 XML 数组应该因错误而更改,或者您忘记在特定位置布局 XML 的layouts[position]中添加TextView

最新更新