2012-09-18 135 views
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這是問題做到這一點。任何幫助是極大的讚賞。

回答

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; 
    } 
}  
相關問題