J'essaie de passer la valeur user_id d'un Intent à un autre Intent. Je sais que c'est un processus très simple et je l'ai fait plusieurs fois. Mais avec le code ci-dessous, je suis légèrement confuse.Passer des données d'une intention à une autre intention dans android
Je dois passer la valeur user_id de la classe MainActivity à la classe MenuFragment. Et le débit réel dans le code est comme this-
MainActivity will call MenuActivity and MenuActivity will call MenuFragment
Alors que cela signifie, je dois passer user_id valeur de MainActivity à MenuActivity puis de MenuActivity à MenuFragment. Ai-je raison?
Si oui, je peux passer la valeur user_id de la classe MainActivity à la classe MenuActivity mais je ne suis pas sûr de savoir comment passer la même valeur user_id de la classe MenuActivity à la classe MenuFragment. Comme la façon dont j'appelle la classe MenuFragment est légèrement différente, je ne sais pas comment faire dans ce cas.
Quelqu'un peut-il m'aider avec ceci?
Ci-dessous est la classe MainActivity
public class MainActivity extends MapActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getIntent().getExtras();
user_id = bundle.getString("USERID");
setContentView(R.layout.sample);
findViewById(R.id.sample_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources()
.getDisplayMetrics());
SlideoutActivity.prepare(MainActivity.this, R.id.inner_content, width);
Bundle bundle = new Bundle();
bundle.putString("USERID", user_id);
Intent thesisProject = new Intent(MainActivity.this, MenuActivity.class);
thesisProject.putExtras(bundle);
startActivity(thesisProject);
overridePendingTransition(0, 0);
}
});
}
}
Ci-dessous la classe MenuActivity
public class MenuActivity extends FragmentActivity {
private SlideoutHelper mSlideoutHelper;
private String user_id;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getIntent().getExtras();
user_id = bundle.getString("USERID");
mSlideoutHelper = new SlideoutHelper(this);
mSlideoutHelper.activate();
getSupportFragmentManager().beginTransaction().add(com.korovyansk.android.slideout.R.id.slideout_placeholder, new MenuFragment(), "menu").commit();
mSlideoutHelper.open();
}
....
}
Et ci-dessous est la classe MenuFragment
public class MenuFragment extends ListFragment {
private String user_id;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, new String[] { " Settings", " Attributes"}));
getListView().setCacheColorHint(0);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
//get selected items
String selectedValue = (String) getListAdapter().getItem(position);
if(selectedValue.equals(" Attributes")) {
Bundle bundle = new Bundle();
bundle.putString("USERID", user_id);
Intent thesisProject = new Intent(getActivity(), MatchingInterest.class);
thesisProject.putExtras(bundle);
startActivity(thesisProject);
}
}
}
Avez-vous vu cela? http://stackoverflow.com/questions/9245408/best-practice-for-instantiating-a-new-android-fragment – NyanLH