2017-03-23 9 views
-1

이름이 ShoppingListActivity 인 액티비티가 있습니다. 여기에 3 개의 단편이 추가되었습니다. 이 예제에서는 단 하나의 조각 만 사용합니다.TAG에서 Android의 단편을 설정하려고 할 때 오류가 발생했습니다.

ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); 

과 같이 보이는 setupViewPager(viewPager); 방법 :

private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 

    Fragment shoppingListFragment = new ShoppingListFragment(); 
    getSupportFragmentManager().beginTransaction().add(shoppingListFragment, "ShoppingListFragmentTag").commit(); 
    adapter.addFragment(shoppingListFragment, "SHOPPING LIST"); 

    viewPager.setAdapter(adapter); 
} 

ViewPagerAdapter 수업이 lookslike : onCreate 방법 나는이처럼 보이는 ViewPager 선언 한

private class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> fragmentList = new ArrayList<>(); 
    private final List<String> fragmentTitleList = new ArrayList<>(); 

    ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return fragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return fragmentList.size(); 
    } 

    void addFragment(Fragment fragment, String title) { 
     fragmentList.add(fragment); 
     fragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return fragmentTitleList.get(position); 
    } 
} 

내 문제는 내가 ShoppingListActivity에서 다른 활동으로 돌아와서 돌아 오는 것보다 내 조각이 새로 고침되지 않는 경우입니다. 에드. 이것은 내가 조각을 찾기 위해 노력하는 onResume 방법에서 내 코드를 분리하고이 같은 조각을 연결하는 것입니다 java.lang.IllegalStateException: Can't change tag of fragment ShoppingListFragment{528673f4 #0 ShoppingListFragmentTag}: was ShoppingListFragmentTag now android:switcher:2131558559:0

내가를 설정하는 방법 :

FragmentManager fragmentManager = getSupportFragmentManager(); 
ShoppingListFragment shoppingListFragment = (ShoppingListFragment) fragmentManager.findFragmentByTag("ShoppingListFragmentTag"); 
fragmentManager.beginTransaction().detach(shoppingListFragment).attach(shoppingListFragment).commit(); 

문제는 내가이 오류가 있다는 것입니다 조각에 올바르게 태그 하시겠습니까?

미리 감사드립니다.

답변

0

내가 이해할 수있는 코드에서, 거기에 ViewPager ShoppingListActivity 탭과 함께 구현됩니다.

viewpager에서 각 조각에는 서버 오른쪽에서 오는 무언가의 목록이 포함되어 있습니까? 이제 사용자가 ShoppingListInfoActivity 권한에서 돌아 왔을 때 전체 뷰 페이지를 새로 고치시겠습니까?

ShoppinglistActivity에서 다음과 같이 변경하십시오.

1) ViewPagerAdapter adapter;을 전역 클래스 수준으로 선언하십시오.

2) 변화 private class ViewPagerAdapter extends FragmentPagerAdapter

) (onresume에 FragmentStatePagerAdapter

3) 변화에

@Override 
protected void onResume() { 
    super.onResume(); 

    if(adapter!=null){ 
     adapter.notifyDataSetChanged(); 
    } 

} 
+0

감사를 FragmentPagerAdapter 교체! 올바른 대답. –