2016-07-28 3 views
0

Я пытаюсь передать строку из адаптера фрагментировать в Bundle бу ti'm получать нуль в моем фрагментеBundle возвращение Null при вызове в фрагменте

Вот мой код, чтобы добавить строку в пачке

  Bundle bundle=new Bundle(); 
      bundle.putString("id",expense_id); 
      AddExpenseFragment fragment=new AddExpenseFragment(); 
      fragment.setArguments(bundle); 
      UiActivity.startAddExpense(context); 

это мой код, чтобы получить на пачку значения в фрагменте

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

    super.onCreateView(inflater, container, savedInstanceState); 
    View view=inflater.inflate(R.layout.activity_fragment_add_expense,container,false); 
    String id=this.getArguments().getString("id"); 
    return view; 
} 

и я передаю значение пучка из моего класса recyclerView адаптера

+1

Что вы делаете методом startAddExpense? – David

+0

@ Давид, он намеревается начать работу с фрагментом – rookieDeveloper

+1

Не могли бы вы показать мне строку, в которой вы фиксируете свой фрагмент с транзакцией фрагмента? Я предполагаю, что вы начинаете не фрагмент, для которого вы передаете аргументы – David

ответ

1

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

AddExpenseFragment fragment=new AddExpenseFragment(); 
fragment.setArguments(bundle); 

Но проблема заключается в вашем

UiActivity.startAddExpense(context); 

вы должны заменить новым экземпляром в AddExpenseFragment, как вы нет, где передача вновь созданного экземпляра фрагмента (с установленными ему аргументами) в метод startAddExpense().

Решение простое, просто передать вновь созданный объект фрагмента к startAddExpense(), как это,

UiActivity.startAddExpense(context, fragment); 

, а затем внутри метода заменить или добавить новый фрагмент и не экземпляр любого нового фрагмента объект.

+0

хорошо, что может быть проблемой, как связать фрагмент при запуске операции спасибо – rookieDeveloper

+0

Рад, что это вам помогло. Это совершенно отдельный вопрос, не связанный с этим. Для этого лучше задать отдельный вопрос. Если проблема решена, пожалуйста, примите ответ. Это помогает поддерживать стандарты сообщества. –

0

Попробуйте это:

Bundle bundle = this.getArguments(); 
String id=bundle.getString("id"); 
+0

не работает, давая ту же ошибку – rookieDeveloper

0

Из вашего кода трудно найти проблемы. Просто дайте свои предложения. Во-первых, проверьте, является ли переменная cost_id нулевой или нет. Во-вторых, убедитесь, что созданный и действительно показанный AddExpenseFragment одинаковый.

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