我有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");
}
}
请建议我如何设置标题名称。
提前致谢
答案 0 :(得分:2)
您可以访问父标签活动,例如
getParent().getParent().setTitle("New Tilte");
说明:
根据我的理解, 当您第一次调用getParent时,您将获得启动子活动的活动组。
第二次调用getParent时,您将获得启动活动组的选项卡活动。
setTitle应该适用于由tabactivity持有的活动窗口。子活动在选项卡活动的framelayout中呈现。因此在子活动中访问父选项卡活动以设置标题。
答案 1 :(得分:1)
执行此操作的最佳方法是实现方法
protected void onChildTitleChanged(Activity childActivity,CharSequence title) {
super.onChildTitleChanged(childActivity, title);
setTitle(title);
}
在父活动中实施此方法。例如,在我的情况下,我有三个活动。
我的家庭活动包含带有艺术家活动和专辑活动的TabHost。 我在Home Activity中实现了上述方法。艺术家活动和专辑活动的标题在相应活动的OnResume方法中设置。
答案 2 :(得分:0)
不建议使用ActivityGroup,它已被弃用 Refer to this link 请使用兼容性库
使用Fragment和FragmentManager