0

こんにちは、ビューページャーを使用しようとしています。

私の問題は、スライド ビューからビューを見つけることができないことです。NPE が発生します。

これは、ビューを見つけるための私のコードです:

@Override
public void onPageSelected(int arg0) {
    // TODO Auto-generated method stub

    focusedView = mPager.getChildAt(arg0);

    button = (ImageButton) focusedView.findViewById(R.id.button);
    button.setOnClickListener(this);
}

次の行に NPE が表示されます。

button.setOnClickListener(this);

ビューをスライドさせるすべてのビューには、「ボタン」IDのボタンがあります。

私もこれを試しました:

@Override
public void onPageSelected(int arg0) {
    // TODO Auto-generated method stub

    button = (ImageButton) mPager.findViewById(R.id.button);
    button.setOnClickListener(this);
}

私もNPEに来ました。

pageviewer内のビューからビューを見つけるにはどうすればよいですか?

4

2 に答える 2

0

このコードは、アクティビティまたはフラグメントに含まれている可能性があります。

finalアクティビティまたはフラグメントでボタンの変数を宣言し、onCreateまたはでその変数への参照を取得するonResumeと、 で使用できるようになりますonPageSelected

サンプル (完全ではない) コード:

public class YourActivity extends Activity {

    private final Button button;

    @Override
    protected void onResume() {

         button = (Button) findViewById(R.id.button);

    }


    // view pager
    @Override
    public void onPageSelected(int arg0) {

        focusedView = mPager.getChildAt(arg0);

        button.setOnClickListener(this);
    }

}
于 2013-10-17T11:46:25.227 に答える