2014-01-05 3 views
0

Я использую swiping tabs в качестве навигации для отображения 5 страниц (фрагменты) в меню приложения (3 точки). Я хочу создать 2 страницы, 1 для настроек и другую для страницы (только статический текст). пожалуйста, совет, как я могу это сделать.элемент меню Android открыть новый фрагмент

В частности, как я могу перейти к новому фрагменту (не на моей вкладке), который будет отображаться при нажатии из пунктов меню.

, пожалуйста, помогите мне, заблаговременно.

это мой код.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item){ 
    switch (item.getItemId()){ 

     case R.id.action_reset: 

      Unsafe.uhs1a.setSelection(0); 
      Unsafe.uhs1b.setSelection(0); 
      Unsafe.uhs1c.setSelection(0); 
      Precondition.phs1a.setSelection(0); 
      Precondition.phs1b.setSelection(0); 
      Precondition.phs1c.setSelection(0); 

     case R.id.action_about: 

      // need to open a static page (fragment) here 

     return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 


} 

} 
+0

Вам необходимо установить фрагмент сделки с FragmentManager. Множество учебных пособий для этого. –

ответ

0

Не уверен, если это то, что вы хотите, но у меня есть фрагмент, который открывает новый Actvity (с фрагментом внутри):

public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch(item.getItemId()) 
    { 
     case R.id.action_about: 
     Intent intent_to = new Intent(getActivity(),MyNewActivity.class); 
      startActivity(intent_to); 
      break; 

    } 
    return true; 
} 

Внутри MyNewActivity класса вы должны иметь контейнер и открытым фрагмент с использованием getFragmentManager()

вы можете даже использовать startActivityForResult, если вы хотите сделать что-то зависит, в том, как новый фрагмент закрывает

Надеюсь, что это помогает

0

Старый вопрос, но WTH.You сделать это, используя FragmentManager и ее друга FragmentTransaction:

@Override 
public boolean onOptionsItemSelected(MenuItem item){ 
    switch (item.getItemId()){ 

    case R.id.action_reset: 

     Unsafe.uhs1a.setSelection(0); 
     Unsafe.uhs1b.setSelection(0); 
     Unsafe.uhs1c.setSelection(0); 
     Precondition.phs1a.setSelection(0); 
     Precondition.phs1b.setSelection(0); 
     Precondition.phs1c.setSelection(0); 

    case R.id.action_about: 
     Fragment newFragment = new TheFragmentYouWantToOpen(); 
     FragmentManager fragmentManager = getFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.replace(R.id.frame_container, newFragment); 
      fragmentTransaction.addToBackStack(null); 
      fragmentTransaction.commit(); 
    //frame_container is the id of the container for the fragment 
    return true; 
    default: 
     return super.onOptionsItemSelected(item); 
} 
Смежные вопросы