2011-11-07 35 views
0

我有TabActivityGroup:的Android的ActivityGroup的子活動沒有的setTitle工作

MainActivity類包含一些選項卡,從數據庫這個名字加載。 Sales, Admin, Inquiry喜歡聰明的我有Sales我創建SalesActivityGroup。那類是卡名稱

public class SalesActivityGroup extends ActivityGroup { 
    public static SalesActivityGroup group; 
    private ArrayList<View> history; 
    private LocalActivityManager mActivityManager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.history = new ArrayList<View>(); 
     group = this; 
     mActivityManager = getLocalActivityManager(); 
     Intent i = new Intent(getBaseContext(), SalesRouteActivity.class); 
     Bundle bundle = new Bundle(); 
     bundle.putInt("positions", -1); 
     i.putExtras(bundle); 
     View view = mActivityManager.startActivity("Sales",i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
    replaceView(view); 

} 

public void replaceView(View v) { 
    history.add(v); 
    setContentView(v); 
} 

public void back(){ 
    if (history.size() > 1){ 
     history.remove(history.size() - 1); 
     View v = history.get(history.size() - 1); 
     setContentView(v); 
    } 
    else { 
     this.finish(); 
    } 
} 

@Override 
public void onBackPressed() { 
    SalesActivityGroup.group.back(); 
} 
} 

SalesRouteActivity是第一個活動。在那裏,我想成立name.I沒有使用此方法的稱號。但不工作

public class SalesRouteActivity extends Activity{ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // setContentView(R.layout.sales_routes); 
     //getWindow().setTitle("Route"); 
      View viewToLoad = LayoutInflater.from(SalesActivityGroup.group).inflate(R.layout.sales_routes, null); 
     this.setContentView(viewToLoad); 
     //this.setTitle("Route"); 
     //getWindow().setTitle("Route"); 
     SalesActivityGroup.group.setTitle("Route"); 
    } 

}

請諮詢我如何可以設置標題名稱。

在此先感謝

+0

您可能需要從選項卡活動中調用setTitle。 – blessenm

+0

如何調用Tab活動?請告訴我 – Piraba

回答

2

您可以訪問像父標籤活動

getParent().getParent().setTitle("New Tilte"); 

說明:

根據我的理解, 當你調用的getParent第一時間,你會得到啓動孩子活動的活動組。

當您第二次調用getParent時,您將獲得啓動活動組的選項卡活動。

setTitle應該適用於Tabactivity所持有的活動窗口。子活動在選項卡活動的框架佈局中呈現。因此,在子活動中訪問父標籤活動來設置標題。

+0

是的。工作很好。謝謝了很多 – Piraba

+0

好一個哥們。 –

+0

@blessenm你能否給出一些解釋你爲什麼寫了getParent()。getParent()....?我想知道,也會幫助未來的用戶。謝謝 –

0

這是不建議使用的ActivityGroup,這種模式已經過時。
Refer to this link 請使用片段和FragmentManager使用兼容性庫

1

做到這一點,最好的辦法是實現該方法

protected void onChildTitleChanged(Activity childActivity,CharSequence title) { 
    super.onChildTitleChanged(childActivity, title); 
    setTitle(title); 
} 

實現父活動此方法。例如,就我而言,我有三項活動。

  1. 首頁活動
  2. 藝術家活動
  3. 專輯活動

我家活動包含了藝術家的活動和專輯活動TabHost。 我在Home Activity中實現了上述方法。藝術家活動和相冊活動的標題在這些活動的OnResume方法中設置。