2015-12-07 3 views
0

Я хочу открыть фрагменты из пунктов меню. У меня есть три элемента на панели действий: список, редактирование, настройка и два фрагмента на данный момент addfragment и countriesListFragment. есть один фрагмент, вложенный в активность, и я хочу, чтобы менял фрагмент в активности при выборе пунктов меню.заменить фрагменты через меню Элементы

мой OnOptionsItemSelected (MenuItem пункт) Метод:

public boolean onOptionsItemSelected(MenuItem item) { 
    // TODO Auto-generated method stub 

    if (item.getItemId()==R.id.list) 
    { 


     Toast.makeText(this,"list fragment", Toast.LENGTH_SHORT).show(); 
     Fragment fr = new CountriesListFragment(); 
     FragmentManager fm = getFragmentManager(); 
     FragmentTransaction ft = fm.beginTransaction(); 
     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
     ft.replace(R.id.fragment1,fr); 
     ft.commit(); 

    } 
    if (item.getItemId()==R.id.edit) 
    { 

      Fragment fr = new addFragment(); 
     FragmentManager fm = getFragmentManager(); 
     FragmentTransaction ft = fm.beginTransaction(); 
     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
     ft.replace(R.id.fragment1,fr); 
     ft.commit(); 
    } 
    if (item.getItemId()==R.id.setting) 
    { 

    } 
    return super.onOptionsItemSelected(item); 
} 

Не work.I не знаю, где проблема. Почему я не могу заменить фрагменты?

enter image description here enter image description here


я нашел ответ. эта линия не так:

Fragment fr = new CountriesListFragment(); 

правильная версия:

CountriesListFragment fr = new CountriesListFragment(); 
+0

уточните пожалуйста. что именно «не работает». Что вы ожидаете и что происходит на самом деле? – Kuffs

+0

@ kuffs не работают, значит: «к сожалению череллит остановился». Я ожидаю повторения фрагментов в деятельности. – klaymen

+0

отредактируйте ваш вопрос, чтобы включить трассировку стека, показывающую ошибку – Kuffs

ответ

1

Ошибка в ваших XML-файлов, по-видимому, у вас есть Scrollview более одного прямого потомка, которое запрещено.

+0

Я изменил вид прокрутки на линейную компоновку. Но все же невозможно заменить фрагменты из пунктов меню. Ошибка говорит, что «у указанного ребенка уже есть родительский элемент. Сначала вы должны вызвать remove view() для родителя ребенка». – klaymen

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