2014-05-31 6 views
0

У меня есть проблема, что только этот код возвращает значение по умолчанию -1. Я пытался отлаживать, он имеет значение, поэтому я не знаю, почему он всегда возвращает -1.Bundle getInt только возвращает значение по умолчанию

private static final String KEY_CATEGORY_ID = "category"; 
Bundle bundle = getArguments(); 
mCategoryId = bundle.getInt(KEY_CATEGORY_ID, -1); 

Это мой отлаживать значение:

bundle Bundle (id=830037735464) 
Bundle[{category=2}] 
+0

Вы звоните 'setArguments()' на фрагменте? –

+0

Что произойдет, если вы выполните bundle.putInt («категория», 5) непосредственно перед вызовом getInt()? – bstar55

+0

Я вызвал setArguments() и bundle.putInt ("category", 2). Мое решение чистое и перестраивает мой проект. Когда-нибудь я смогу понять мой ADT. –

ответ

2

В вашей setArguments деятельности таким образом

mFragment = new MyFragment(); 
Bundle extras = this.getIntent().getExtras(); 
extras.putInt("category", 10); 
mFragment.setArguments(extras); 
mFragmentTransaction = getSupportFragmentManager().beginTransaction(); 
mFragmentTransaction.add(R.id.profile_fragment, mFragment); 
mFragmentTransaction.commit(); 

В фрагменте получить его таким образом

Bundle bundle = getArguments(); 
catgory = bundle.getInt("category"); 
Смежные вопросы