2015-07-09 3 views
0

Я создал скользящие вкладки, как описано в Sliding Tabs, и хочу использовать переданные данные для дальнейшего использования. Я искал решения, но каждый раз значения пустые.Параметры переноса от активности к фрагменту

В моей деятельности я использовал следующий код. Фрагмент называется tab1_simplecall и идентификатор framelayout является tab1_fragment:

if (findViewById(R.id.tab1_fragment) != null){ 
     if (savedInstanceState!=null) { 
      return; 
     } 
     tab1 = new tab1_simplecall(); 
     getSupportFragmentManager().beginTransaction().add(R.id.tab1_fragment, tab1); 
    } 

Fragment fragObj = new Fragment(); 
Bundle bundle = new Bundle(); 
bundle.putInt("ID", ID); 
bundle.putString("time", time); 
bundle.putString("worker", worker); 
fragObj.setArguments(bundle); 

В моем фрагменте я пытаюсь получить данные:

private void loadBundle() { 
      Bundle b = getArguments(); 
      Log.i("tab1", "Check if b != null"); 
      if (b != null) { 
        String name= b.getString("name"); 
        Integer ID= b.getInt("ID"); 
        String date= b.getString("date"); 
        Log.i("tab1 Übergabe: ", "" + name+ " " + ID+ " " + date); 
      } 
      else 
      { 
        Log.i("tab1", "B = null"); 
      } 
    } 

Но каждый раз, расслоение Ь является нулевым. Как я могу решить эту проблему?

+0

Как вы прикрепление вашего фрагмента к вашему приложению фрагмент Сделки C? ould вы редактируете свой вопрос и включаете эту строку кода? –

+0

Sry, я не уверен, что вы точно хотите:/ –

+0

Вы создали экземпляр объекта «Fragment», но где-то в вашем коде вам пришлось прикрепить этот фрагмент к фрейму контейнера. Не могли бы вы опубликовать эту строку? –

ответ

0

вы можете использовать sharedPreference для отправки данных между действиями или фрагментом.

0

Я переместил следующий код в конец моего onCreate в действии. Теперь данные будут переданы. Спасибо до сих пор :)

if (savedInstanceState == null) { 
     tab1 = new tab1_simplecall(); 
     bundle.putString("ID", "345123"); 
     tab1.setArguments(bundle); 
     getSupportFragmentManager().beginTransaction().add(R.id.tab1_fragment, tab1).commit(); 
    } 

Но несколько миллисекунд спустя, приложение падает с сообщением «IllegalArgumentException: Нет вид найдено для ид ... для фрагмента ...

сниппетов из моего макета для Закладка:.?

<LinearLayout 
    android:orientation="vertical" 
    android:id="@+id/tab1_fragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="30dp"> 

в моей деятельности я называю идентификатор (tab1_fragment) фрагмента в моем Fragmentlayout Но почему :(

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