ViewPager가 포함 된 두 번째 활동을 호출하는 활동이 있습니다.호출 한 활동의 PagerAdapter에서 항목 수 설정
첫 번째 활동에는 ViewPager에있는 항목의 수를 간접적으로 정의하는 추가 데이터가 포함됩니다.
첫 번째 활동에서 호출 코드는 다음과 같습니다
myIntent.setClass(getApplicationContext(),ShowAndTellMultiplesActivity.class);
myIntent.putExtra("i_split_ways",v_integer_value);
startActivity(myIntent);
i_split_ways
값이 ViewPager에서 만드는 방법을 많은 항목 해결하는 데 사용되는 것입니다 -이 값이>이 다음 카운트가해야 본질적 경우 I i_split_ways -1
선언하고 그> 5 인 경우, 항목의 수가 수신 활동 5.
이어야
static int i_split_ways = 2;
활동 클래스 선언 직후.
그런 다음 활동의 onCreate 메소드에서 활동 호출의 추가 데이터 값을 다음과 같이 지정합니다.
Intent intent = getIntent();
i_split_ways = intent.getExtras().getInt("i_split_ways",1);
마지막으로
PagerAdapter
클래스의 getCount() 함수에서 나는 다음과 같이 표시 할 항목 수를 계산합니다.
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
return PlaceholderFragment.newInstance(position + 1);
}
@Override
public int getCount() {
if (i_split_ways > 5) i_split_ways = 5 ;
if (i_split_ways <= 2) i_split_ways = 2;
return i_split_ways;
}
여기 논리는 약간의 작업이 필요하지만 여기의 문제와 관련이 없습니다.
문제는 i_split_ways가 3이 아닌 다른 작업 일 때 두 번째 활동을 시작하면 예를 들어 The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 2, found: 4
이라는 오류가 발생한다는 것입니다.
나는 문제가 아마 내가 어떤 점에서
mSectionsPagerAdapter.notifyDataSetChanged();
를 호출 할 필요에 관련이 있음을 볼 수 있습니다,하지만 난 그 전화를해야하는 위치 알아낼 수 없습니다 - 또는 무엇을 더 근본적으로 뭔가 문제가 실제로 있다면 나는하려고 애쓴다.
아, 그래서'getCount()가'는, setAdapter'의 일환으로 실행을()'.. 그 그건 내 문제를 해결거야 ... 완벽한 의미가 있습니다. –