对不起,我只是想知道。可以从child intent
设置动作条吗?
在我的情况下,我的主要活动是SherlockActivity
,但它使用的是tab
主机。然后我添加了一个来自Intent的tabspec,它也使用sherlockActivity。然后我想根据该选项卡规范的意图设置操作栏。
如果可以的话,我可以知道怎么做吗?因为这会使我的应用程序遇到错误。
08-16 10:30:00.470: E/AndroidRuntime(16137): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.NullPointerException
这是我的主要活动:
公共类MainActivity扩展SherlockActivity{
private LocalActivityManager lam;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
lam = new LocalActivityManager(this, false);
lam.dispatchCreate(savedInstanceState);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.header);
View v = getSupportActionBar().getCustomView();
tv = (TextView) v.findViewById(R.id.headerTitle);
tv.setTypeface(Typeface.createFromAsset(AlumniApplication.getContext().getAssets(), "fonts/LLNITRO_.ttf"));
tv.setText("Title");
setTab();
}
private void setTab(){
TabHost tabHost = (TabHost) findViewById(R.id.main_tabhost);
tabHost.setup(lam);
TabSpec com = tabHost.newTabSpec("community");
com.setIndicator(getTabIndicator(R.drawable.com_tab));
com.setContent(new Intent(AlumniApplication.getContext(), CommunityActivity.class));
tabHost.addTab(com);
}
private View getTabIndicator(int srcId){
View v = LayoutInflater.from(AlumniApplication.getContext()).inflate(R.layout.tab_image_layout, null);
ImageView iv = (ImageView) v.findViewById(R.id.tab_image);
iv.setImageResource(srcId);
return v;
}
}
然后我想从儿童意图中设置动作条
公共类CommunityActivity扩展SherlockActivity{
private LocalActivityManager lam;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_above_layout);
}
}
但当我这么做的时候,它出错了。
如果您想从子片段中调用活动的方法(托管片段),则需要获取托管活动的引用。使用getActivity()
,您可以获得此连接。现在,您可以在片段中调用活动的方法。
例如:
getActivity().setTitle(R.string.my_actionbar_title);