2014-02-06 2 views
1

У меня есть пейджер представления, который имеет 3 фрагмента вкладок, размещенных в FragmentActivity.ViewPager Нет изображения для идентификатора для фрагмента

То, что я пытаюсь сделать, это заменить эти фрагменты на новый после нажатия пункта:

public class UserShopActivity extends FragmentActivity implements 
     UserItemsFragment.OnUserItemSelectedListener, 
     UserCategoriesFragment.OnUserCategoriesSelectedListener, 
     UserSelectedCategoryFragment.OnUserItemsSelectedListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.activity_user_profile); 

     mViewPager = new ViewPager(this); 
     mViewPager.setId(R.id.shop_pager); 
     setContentView(mViewPager); 
} 

... 

    @Override 
    public void onUserCategoriesSelected(String category_id) { 
     UserSelectedCategoryFragment fragment = new UserSelectedCategoryFragment(); 
     getSupportFragmentManager().beginTransaction() 
       .replace(R.id.shop_container, fragment) 
       .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) 
       .addToBackStack(null) 
       .commit(); 
} 
} 

Однако я получил эту ошибку:

java.lang.IllegalArgumentException: No view found for id 0x7f070011 (com.ked.ai:id/shop_container) for fragment UserSelectedCategoryFragment{40f7bcf0 #3 id=0x7f070011}

Я уже установлен контейнер идентификатор в ViewPager setContentView «S, который является shop_container:

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/shop_pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <FrameLayout 
     android:id="@+id/shop_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</android.support.v4.view.ViewPager> 

Bu t он не смог найти идентификатор. Как это правильно заменить?

ответ

1

Вы не заменяете фрагмент в ViewPager, вам необходимо реализовать FragmentPagerAdapter или FragmentStatePagerAdapter для отображения фрагментов в представлении пейджера.

Для получения дополнительной информации:

http://developer.android.com/training/animation/screen-slide.html

попробуйте изменить:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/shop_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

<android.support.v4.view.ViewPager 
    android:id="@+id/shop_pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 




</android.support.v4.view.ViewPager> 
</FrameLayout> 

изменения onCreate к:

public class UserShopActivity extends FragmentActivity implements 
     UserItemsFragment.OnUserItemSelectedListener, 
     UserCategoriesFragment.OnUserCategoriesSelectedListener, 
     UserSelectedCategoryFragment.OnUserItemsSelectedListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.activity_user_profile); 
     setContentView(R.layout.yourlayoutname); 
     mViewPager = (ViewPager)findViewById(R.id.shop_pager); 


} 
+0

У меня уже есть, что для отображения этих 3 вкладки. Теперь я пытаюсь вызвать новый фрагмент вне viewpager. Это возможно? или у меня есть альтернатива? – AimanB

+0

поэтому класть framelayout наружный пейджер. –

+0

Все те же. Я отредактировал вопрос. Pls проверит это. Я что-то пропустил? – AimanB

Смежные вопросы