2012-05-04 11 views
1

私のViewPagerはうまく動作しますが、テキストがページャに「接続」されるように、私のViewPagerの画像の上にTexViewを追加しようとしています。
私はTexViewの罰金を定義することができますが、私はのsetText()しようとすると、この行にNullPointerExceptionが返されます。ViewPagerでテキストを設定できません

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

findViewByIdしようとする前に、レイアウトを膨らませていないように見えますが、スタックトレースを投稿してもらえますか?あなたはtextView1が膨らんでいると確信していますか? – blacharnia

+0

テキストビューをどのように膨張させるのですか? – Pete

答えて

2

使用この

:ここ score.setText("TEST");


は私のアダプターのコードです

View view = (View) inflater.inflate(R.layout.your_layout, null); 

とテキストビューを見つけるような

score = (TextView) view.findViewById(R.id.textView1); 
score.setText("TEST"); 
+0

あなたの問題は解決されましたか? – Jitendra

+0

短いと完璧です.... –

+0

ソート。テキストビューを膨らませるだけでなく、相対レイアウトのレイアウトを変更して、画像ビューの上にテキストが表示されるようにしました。 – Pete

1

あなたは(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; 
    } 
... 
+0

がソートされました。テキストビューを膨らませるだけでなく、テキストをイメージビューの上に表示するように、farleftのレイアウトを相対レイアウトに変更する必要がありました – Pete

関連する問題