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);