[英]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);
}
在父活動中實現此方法。 例如,就我而言,我有三個活動。
我的家庭活動包含一個具有藝術家活動和專輯活動的TabHost。 我在家庭作業中實現了上述方法。 “藝術家”活動和“專輯”活動的標題是在相應活動的OnResume方法中設置的。
不建議使用ActivityGroup,因為它已被棄用。
引用此鏈接。請使用兼容庫使用Fragment和FragmentManager
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.