2017-02-22 13 views
0

Мне нужна помощь. Я разрабатываю приложение.onItemНажмите, если перейдите в FirstFragment еще, перейдите в SecondFragment

Это моя панель навигации. У меня есть меню с тремя вариантами (цветные).

1) FirstFragment
2) MapFragment
3) Третий фрагмент

Image Here

И это моя панель навигации состоит из "Создание списка Тип".

При нажатии на него открывается другой фрагмент (названный ListFragment), который состоит из списка предприятий.

list

заведение должно будет функция перейти к FirstFragment либо к MapFragment.

Сценарий:

1) Если я нахожусь в FirstFragment-> нажмите навигации drawer-> нажмите ListFragment-> Банк

В этом случае, когда пользователь нажимает на банк будет проверять, если пользователь находится в FirstFragment, тогда он перейдет к FirstFragment. Иначе он перейдет к MapFragment ........ Результат он перейдет к FirstFragment.

2) Если я нахожусь в MapFragment-> нажмите навигации drawer-> нажмите ListFragment-> Банк

Он проверяет, является ли пользователь в FirstFragment иначе он будет идти к MapFragment ..... ...... Результат он перейдет к MapFragment.

Проблема: Таким образом, проблема это я не знаю, как реализовать это в моих кодов ...

Здесь код в моем MainActivity:

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     android.app.FragmentManager fragmentManager = getFragmentManager(); 

     if (id == R.id.action_ar) { 
      fragmentManager.beginTransaction() 
        .replace(R.id.content_frame, new FirstFragment()) 
        .commit(); 
      Toast.makeText(this, "First Selected", Toast.LENGTH_SHORT).show(); 
     } 
     else if (id == R.id.action_map) { 
      fragmentManager.beginTransaction() 
        .replace(R.id.content_frame, new MapFragment()) 
        .commit(); 
      Toast.makeText(this, "MAP Selected", Toast.LENGTH_SHORT).show(); 
     } 
     else if (id == R.id.action_direction) { 
      fragmentManager.beginTransaction() 
        .replace(R.id.content_frame, new ThirdFragment()) 
        .commit(); 
      Toast.makeText(this, "Third Selected", Toast.LENGTH_SHORT).show(); 
     } 
     return super.onOptionsItemSelected(item); 
    } 
+0

Ваша проблема существует в 'FirstFragment', так что вам нужно, чтобы показать, что код ... –

+0

Проблема в том, что я не знаю, как это сделать. Вот почему мне нужна помощь. – Problematic

+0

Я прошу вас, пожалуйста, [изменить] ваш вопрос с большим количеством кода ... Хотя ваш вопрос кажется неясным. Попробуйте создать [mcve] –

ответ

-1

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

//Passing data to fragment: 

Bundle bun = new Bundle(); 
bun.putString("pathimage", path); 
fragment_setting.setArguments(bun); 

//Getting data in fragment: 

Bundle b = getArguments(); 
String path = b.getString("pathimage"); 

Узнайте больше в этих двух ссылок: https://developer.android.com/training/basics/fragments/communicating.htmlhttps://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity

+0

Зачем вам нужна дополнительная переменная, чтобы рассказать вам, в каком фрагменте вы находитесь? Почему вы использовали недописанные имена переменных, например, php? –

+0

@ Ник, это не то место, где вы находитесь, но из того, из какого фрагмента/деятельности вы пришли, с этой информацией мы можем решить, что он попросит с простым, если или переключиться после. Также отредактирован ответ. –