打开活动A并加载活动A的活动B的特定片段

我有活动A根据菜单select加载片段。 如果我从活动B到活动A做了一个意图,将加载默认指定的活动A片段。 我想要实现的是从活动A而不是默认的加载另一个片段。 我希望这至less有一点道理。 我试图做的是这个 – >

在活动BI有 – >

btnlinkToForum.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent i = new Intent(getApplicationContext(), ReaderActivity.class); i.putExtra("fragmentNumber", 1); startActivity(i); } }); 

我尝试基于putExtra数据来加载活动A中的特定片段 – >我将这段代码放入onCreate方法

 if (getIntent().getIntExtra("fragmentNumber", 0) == 1) { FragmentManager fm = ReaderActivity.this.getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); FragmentForum fragment = new FragmentForum(); if (fragment != null) { // Replace current fragment by this new one ft.replace(R.id.activity_main_content_fragment, fragment); ft.commit(); // Set title tvTitle.setText("Forum"); } } 

这然而加载默认片段,而不是…任何帮助将不胜感激

Solutions Collecting From Web of "打开活动A并加载活动A的活动B的特定片段"

任何人都可以举例说明如何做到这一点…每当我尝试使用getIntent()。getStringExtra(“whatever”); 我得到一个空值… –

当然,你应该从一个活动到另一个活动获得价值:

Activity_A.java

 Intent i = new Intent(this, SignUpActivity.class); i.putStringExtra("key", value); startActivity(i); 

Activity_B.java

 onCreate() { Intent i = getIntent(); String var = i.getStringExtra("key"); .. } 

PS:如果你想传递一个对象

 i.putSerializable("object", object); 

 (Class) i.getSerializable("object"); 

这工作;)我的问题是我混合初始化意图的buttonids,所以基本上我虽然我按了正确的button,因为button的名称是正确的,但我引用了错误的buttonID,所以这就是为什么我总是得到一个空值! 这就是下面说的代码适合我! 在活动B:

 btnToForum.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent i = new Intent(RssListActivity.this, ReaderActivity.class); //pass data to an intent to load a specific fragment of reader activity String fragmnet = "forum"; i.putExtra("fragment", fragmnet); startActivity(i); } }); 

在活动A:

  Intent i = getIntent(); String fragmentName = i.getStringExtra("fragment"); String forum = "forum"; Log.e("Test1", "Test1" + fragmentName); if (fragmentName != null && fragmentName.equals(forum)) { Do some magic here ;) }