0

我是 android 开发的菜鸟,我想为特定选项卡动态设置内容。在 onCreate 期间,我将内容设置为:

    specs2 = th.newTabSpec("tag2");
    specs2.setContent(R.id.tab2);
    specs2.setIndicator("NEWS",getResources().getDrawable(R.drawable.news));

但是,我没有运气从 PreferenceActivity 切换内容。这是我的代码:

 SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
    String selectednewsfeed = getPrefs.getString("list", "1");
    if(selectednewsfeed.contentEquals("1")){
        try{
            MyActivity.newsfeed.loadUrl("http://feeds.feedburner.com/GoldMoneyGoldResearch");
            MyActivity.specs2.setContent(R.id.tab5);
            }catch (Exception e){
                e.printStackTrace();
            }
    }
}  

我在 MyActivity 中更改内容没有任何问题,它只是试图从 PreferenceActivity 中完成这一点,这就是问题所在。任何帮助是极大的赞赏。

4

1 回答 1

0

最简单的方法是使用startActivityForResult()。这允许您在启动的活动中接收来自已启动活动的信息。

快速示例,启动您的 PreferenceActivity:

// in MainActivity
startActivityForResult(new Intent(this, PrefsActivity.class), 0);

然后在你的 PreferenceActivity 中,设置一些数据返回到 MainActivity:

// in PreferenceActivity
Intent returnData = new Intent();
returnData.putExtra("com.your.package.name.DATA", R.id.tab5);
setResult(Activity.RESULT_OK, returnData);
finish();

回到 MainActivity 内部,覆盖 onActivityResult():

@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data){
    switch(requestCode){
    case 0:
        if (resultCode == Activity.RESULT_OK){
            int tabResource = data.getIntExtra("com.you.package.name.DATA", -1);
            specs2.setContent(tabResource);
        }
        break;
    }
}    
于 2012-09-18T19:38:55.590 回答