0

3 つの類似したフラグメントを表示するビューページャーを作成しました。これらのフラグメントは同一のレイアウトを持ち、それらのレイアウトのビューは同じ ID を持ちます (例: DetailedPowerFragment の RatingBar は、detailedRatingBar の ID を持ち、DetailedWaterFragment の RatingBar も同様です)

ただし、各フラグメントで個別に findViewById を使用して RatingBar の値を設定しようとすると、別の RatingBar が見つかったようです。

そう

        final RatingBar ratingBar = (RatingBar)getSherlockActivity().findViewById(R.id.ratingBar);
    ratingBar.setEnabled(false);

DetailedWaterFragment では、DetailedPowerFragment で RatingBar を設定します。以下に、関連する場合にビューページャーを作成するコードを示します - しかし、この問題の原因は何ですか? これが起こらないようにするために、すべてのビューに新しい ID を与える必要がありますか?

    detailedFragments = new ArrayList<SherlockFragment>();

    detailedFragments.add(new DetailedPowerFragment());
    detailedFragments.add(new DetailedHeatFragment());
    detailedFragments.add(new DetailedWaterFragment());

    mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), detailedFragments);
    mViewPager.setAdapter(mMyFragmentPagerAdapter);
4

1 に答える 1