我做了一个名为MyBaseActivity
的抽象基础活动,扩展了Activity
。然后,我为所有具体的子活动扩展MyBaseActivity
。我这样做是为了不必为每个子活动设置相同的菜单。
但是,在我的所有活动onCreate()
调用中,我仍然会重复以下代码。
// Custom View for ActionBar
ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
View view = View.inflate(getApplicationContext(), R.layout.actionbar_top, null);
actionBar.setCustomView(view);
有没有办法避免重复此代码?我可以把它放在MyBaseActivity
吗?如果是这样,我是否需要将其发送给上下文?我该怎么做?
答案 0 :(得分:4)
将其放入您的基本活动onCreate()
。
在子类中,当您调用super.onCreate()
时,代码将被执行。
public class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Custom View for ActionBar
ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
View view = View.inflate(getApplicationContext(), R.layout.actionbar_top, null);
actionBar.setCustomView(view);
}
}
public class SubActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState); // this calls BaseActivity's onCreate()
// at this point your actionbar custom view will have been set up
}
}