Ani*_*udh 17 android fragment android-actionbar
我需要在我的一个针对姜饼的Android应用程序中使用动作栏和片段的组合.所以我使用了v7支持库中的操作栏和v4支持库中的片段,并使用FragmentActivity扩展了我的类.
当我输入线路时出错
actionbar = getSupportActionBar();
Run Code Online (Sandbox Code Playgroud)
该错误表明,对于myFragmentClass(我的类名)类型,未定义getSupportActionBar().没有支持库,代码可以完美运行.我的问题有解决方案吗?
谢谢!
bGo*_*rle 41
在OnAttach()方法中编写此代码:
actionBar = ((ActionBarActivity) getActivity()).getSupportActionBar();
Run Code Online (Sandbox Code Playgroud)
不推荐使用ActionBarActivity.使用
actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
小智 19
您必须扩展ActionBarActivity而不是FragmentActivity以使Actionbar具有片段.
如果您正在使用v7 appcompat库,那么您的活动应该扩展ActionBarActivity,它是FragmentActivity的子类(有关更多信息,请参阅添加操作栏).
您可以在下面给出的页面上找到更多信息.上面的行取自下面的页面(最后一段). http://developer.android.com/training/basics/fragments/creating.html
编辑 - 这不是一个错误.它只是缺乏知识.有时基本不清楚.我目前正在学习,这也是来自Android网站,这就是我给你答案的方式.
我也尝试过使用:
actionbar = getActivity().getSupportActionBar();
Run Code Online (Sandbox Code Playgroud)
直到我这样做才行不通:
ActionBar actionBar = ((ActionBarActivity)getActivity()).getSupportActionBar();
Run Code Online (Sandbox Code Playgroud)
所以当我投射到我的MainActivity时它会起作用.
对于android.support.v7
ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
//than next for example
actionBar.setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27647 次 |
| 最近记录: |