Android将1数据从activity1发送到activity2 TabHost

Android将1数据从activity1发送到activity2 TabHost,android,android-tabhost,Android,Android Tabhost,我需要有关使用TabHost从一个活动向另一个活动发送数据的帮助 通常,通过单击按钮切换选项卡+活动,我使用以下代码: MainActivity tabs = (MainActivity) getParent(); tabs.getTabHost().setCurrentTab(1);//swwitch tabs //this selects tab2 on click 这就是我试图做的,但它崩溃了: 活动1 Intent i = getParent().getIntent();

我需要有关使用TabHost从一个活动向另一个活动发送数据的帮助

通常,通过单击按钮切换选项卡+活动,我使用以下代码:

MainActivity tabs = (MainActivity) getParent();
tabs.getTabHost().setCurrentTab(1);//swwitch tabs  //this selects tab2 on click
这就是我试图做的,但它崩溃了:

活动1

 Intent i = getParent().getIntent();
                i.putExtra(contactId, "a");
                i.putExtra("tab", 1);
                MainActivity tabs = (MainActivity) getParent();
                tabs.getTabHost().setCurrentTab(1);
活动2

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.twoo);
        Intent i = getParent().getIntent();
        int a = i.getIntExtra("a", 0);
        int sum = a ;
        Toast.makeText(twoo.this, sum, Toast.LENGTH_SHORT).show();
    }
我知道此代码用于发送数据:

Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent)

但这并不是我想要的,因为这段代码会打开整个活动表单并删除选项卡。

我以前从未使用过选项卡,但如何将数据保存到共享首选项中,然后在更改选项卡后将其取出

//in
SharedPreferences pref = getSharedPreferences("AppData",MODE_PRIVATE);
pref.edit().putString("Email",EmailEditText.getText().toString()).apply();

//out
SharedPreferences pref = getSharedPreferences("AppData",MODE_PRIVATE);
String email = pref.getString("Email","");

我以前从未使用过选项卡,但如何将数据保存到共享首选项中,然后在更改选项卡后将其取出

//in
SharedPreferences pref = getSharedPreferences("AppData",MODE_PRIVATE);
pref.edit().putString("Email",EmailEditText.getText().toString()).apply();

//out
SharedPreferences pref = getSharedPreferences("AppData",MODE_PRIVATE);
String email = pref.getString("Email","");
这就是我想要做的,但它崩溃了

我认为您输入了错误的
putExtra()
您必须在第一个参数中输入您想要用于获取第二个
活动
上的值的“引用”,并且在第二个值上,必须是您想要传递的值

Intent i = getParent().getIntent();
i.putExtra(contactId, "a"); <------- Try to change it to i.putExtra("a", contactId);
i.putExtra("tab", 1);
MainActivity tabs = (MainActivity) getParent();
tabs.getTabHost().setCurrentTab(1);
Intent i=getParent().getIntent();
i、 putExtra(联系人ID,“a”);
这就是我想要做的,但它崩溃了

我认为您输入了错误的
putExtra()
您必须在第一个参数中输入您想要用于获取第二个
活动
上的值的“引用”,并且在第二个值上,必须是您想要传递的值

Intent i = getParent().getIntent();
i.putExtra(contactId, "a"); <------- Try to change it to i.putExtra("a", contactId);
i.putExtra("tab", 1);
MainActivity tabs = (MainActivity) getParent();
tabs.getTabHost().setCurrentTab(1);
Intent i=getParent().getIntent();

i、 putExtra(联系人ID,“a”);你试过我的答案吗?@a ron,你解决了你的问题还是我应该更新我的答案?你试过我的答案吗?@a ron,你解决了你的问题还是我应该更新我的答案?