我的ViewPager工作正常,但我现在正试图在我的ViewPager中的图像顶部添加一个TexView,因此文本被“附加”到寻呼机。
我可以很好地定义TexView,但是当我尝试setText()时,它会在这一行返回一个NullPointerException:
score.setText("TEST");
以下是我的适配器的代码:
private class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 5;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.farleft;
score = (TextView) findViewById(R.id.textView1);
**EXCEPTION HERE** score.setText("TEST");
break;
case 1:
resId = R.layout.left;
break;
case 2:
resId = R.layout.middle;
break;
case 3:
resId = R.layout.right;
break;
case 4:
resId = R.layout.farright;
break;
}
View view = inflater.inflate(resId, null);
view.setTag(position);
view.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
int position = (Integer) view.getTag();
Log.v("Log_tag", "Here image is clicked" + position);
if(position == 0){
Intent intent = new Intent(LogoQuizActivity.this,
LevelOne.class);
startActivity(intent);
}
if(position == 1){
Intent intent = new Intent(getBaseContext(),
LevelTwo.class);
startActivity(intent);
}
if(position == 2){
Intent intent = new Intent(getBaseContext(),
LevelThree.class);
startActivity(intent);
}
if(position == 3){
Intent intent = new Intent(getBaseContext(),
LevelFour.class);
startActivity(intent);
}
if(position == 4){
Intent intent = new Intent(getBaseContext(),
LevelFive.class);
startActivity(intent);
}
}
});
((ViewPager) collection).addView(view, 0);
return view;
}
答案 0 :(得分:2)
使用此
View view = (View) inflater.inflate(R.layout.your_layout, null);
找到文本视图,例如
score = (TextView) view.findViewById(R.id.textView1);
score.setText("TEST");
答案 1 :(得分:1)
在尝试findViewById(R.id.textView1)之前,您似乎没有夸大布局
...
View view = inflater.inflate(resId, null); // this comes first
switch (position) {
case 0:
resId = R.layout.farleft;
score = (TextView) view.findViewById(R.id.textView1);
score.setText("TEST");
break;
case 1:
resId = R.layout.left;
break;
case 2:
resId = R.layout.middle;
break;
case 3:
resId = R.layout.right;
break;
case 4:
resId = R.layout.farright;
break;
}
...