簡體   English   中英

Android ActivityGroup的子活動setTitle不起作用

[英]Android ActivityGroup's child activity setTitle not working

我有TabActivityGroup:

MainActivity類包含一些選項卡,該名稱從db加載。 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是第一個Activity。在那里我想設置標題名稱。我確實使用這種方式。

 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");
    }

}

請告訴我如何設置標題名稱。

提前致謝

您可以訪問父選項卡活動,例如

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

說明:

根據我的理解,當您第一次調用getParent時,您將獲得啟動子活動的活動組。

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

setTitle應該適用於由tabactivity保存的活動窗口。 子活動在選項卡活動的框架布局中呈現。 因此,在子活動中訪問父選項卡活動以設置標題。

最好的方法是實現該方法

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

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

  1. 家庭活動
  2. 藝術家活動
  3. 相冊活動

我的家庭活動包含一個具有藝術家活動和專輯活動的TabHost。 我在家庭作業中實現了上述方法。 “藝術家”活動和“專輯”活動的標題是在相應活動的OnResume方法中設置的。

不建議使用ActivityGroup,因為它已被棄用。
引用此鏈接。請使用兼容庫使用Fragment和FragmentManager

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM