14

1 から 10 の数字を表示し、その数字のサウンドを表示するアプリを開発しようとしています。

mobile.tutsplus の横スワイプの例を使用すると、すべての数字が正しく表示される段階に到達しましたが、1から戻ったときに音が鳴りません2。(私の活動がで始まるときに最初に来ます1)。も来ません10

の音12がすぐに来るという以前の問題を解決した後instantiateItem()、次のエントリをプリフェッチするために が呼び出されることを理解しました。

どの時点でサウンドを再生すればよいか知りたいです。現在、それは で行われているため、 とinstantiateItem()については聞いていません。できると思ったのですが、何度も呼び出されているようです。110finishUpdate()

トレーニング ガイドによると、このようなオブジェクトのコレクションをFragmentStatePagerAdapter使用する必要があるため、それに移行しようとしています。しかし、私はこれを正しく機能させたいと思っています。

ご想像のとおり、私は初心者で、これが初めてのアプリです。必要に応じてコードを貼り付けることができます。

4

1 に答える 1

18

ViewPager には、ユーザーが見ているページが新しいページになったときにコールバックを取得するオブジェクトを設定できる setOnPageChangeListener() メソッドがあります。

このようなものはあなたを正しい道に導きます:

mPageChangeListener = new OnPageChangeListener() {

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

    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onPageSelected(int pos) {
        playSoundForPage(pos);
    }

};
yourViewPager.addOnPageChangeListener(mPageChangeListener);

ただし、アダプターではなく、ViewPager (アクティビティまたはフラグメント) を所有するものにこれを配置する必要があります。

于 2013-02-22T00:32:11.293 に答える