0

Я разрабатываю приложение Android с навигационной активностью, и есть список вариантов в навигационном ящике, и моя первая страница также находится в этом упражнении. Я перехожу на другую страницу с помощью опций, имеющихся в навигационном ящике, которые являются классами фрагментов. Мне нужно вернуться на первую страницу, если я нажму кнопку «Назад» на устройстве. Но это касается страниц, которые я посещал раньше. Моя цель - вернуться на первую страницу из соответствующего класса фрагментов.Как вернуть активность классам фрагментов?

В то время, когда я нажимаю кнопку «Назад», она также приходит к моему заставке, пожалуйста, помогите мне исправить это. Заранее спасибо. Это код моей первой страницы, откуда я перехожу на другие страницы через ящик. Мне нужно, чтобы вернуться к этой же странице снова из ящика (FirsPage)

public void selectDrawerItem(MenuItem menuItem) { 
    switch(menuItem.getItemId()) { 

     //1.User Profile 

     case R.id.navigation_item_attachment: 
      fragmentClass = ProfileTab.class; 
     // finish(); 

      break; 

     //2.FeedBack 


     //case R.id.navigation_item_images: 
      /* fragmentClass = SearchHistoryTab.class; 
      break;*/ 

     case R.id.navigation_refer: 
      fragmentClass = ReferFrndz.class; 

      // finish(); 
      break; 

     case R.id.navigation_daily: 
      fragmentClass = DailyUsage.class; 
      break; 

     //4.About Us 

     case R.id.navigation_about: 
      fragmentClass = AboutJc.class; 
      break; 

     //4.Contact Us 

     case R.id.navigation_item_location: 
      fragmentClass = ContactJc.class; 
      break; 

     default: 
      break; 
    } 

    try { 

     fragment = (Fragment) fragmentClass.newInstance(); 

    } 

    catch (Exception e) { 

     e.printStackTrace(); 
    } 


    FragmentManager fragmentManager = getSupportFragmentManager(); 
    fragmentManager.beginTransaction().replace(R.id.search_layout, fragment).commit(); 
    menuItem.setChecked(true); 
    setTitle(menuItem.getTitle()); 
    mDrawerLayout.closeDrawers(); 
} 

Я Finish(), но это не сработало. Это завершает все мое приложение.

Всплеск Код экрана:.

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Thread mythread = new Thread() { 
       public void run(){ 
        try{ 
         sleep(3000); 
        }catch(InterruptedException e){ 
         e.printStackTrace(); 
        } 
      finally { 
           ..... 
        } 
      } 
     } 
    }; 
    mythread.start(); 
} 

ответ

0

Обновите Fragmenttransaction код для добавления ProfileTab (Firstpage) в записи backstack» Таким образом, вы получаете ProfileTab (FirstPage) обратно после нажатия кнопки.

 FragmentManager fragmentManager = getSupportFragmentManager(); 
     if(fragment.equals(ProfileTab.class)){ 
     fragmentManager.beginTransaction().replace(R.id.search_layout, fragment).addToBackStack("fragment_tag").commit(); 
//Only add backstack entry for first page so you get after click on back button 
     } 
     else 
     { 
      fragmentManager.beginTransaction().replace(R.id.search_layout, fragment).commit(); 
     } 
     menuItem.setChecked(true); 
     setTitle(menuItem.getTitle()); 
     mDrawerLayout.closeDrawers(); 

Используйте это решение и поделитесь своими отзывами с помощью replay, который поможет нам улучшить решение.

+0

Я пробовал это, Он идет к моему заставке и приходит к моему первому. Так как я установил 5 секунд для заставки. Что еще мы можем изменить, чтобы решить эту проблему? Есть идеи? –

+0

вы можете опубликовать код экрана всплеска, который поможет более ясно. – pRaNaY

+0

да. Я опубликовал свой код заставки. Просьба проверить обновленный вопрос –

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