我是Android开发的noob,我想动态地为特定选项卡设置内容。在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实现此问题。非常感谢任何帮助。
答案 0 :(得分: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;
}
}