setSupportActionBar()方法报错

在Android开发中,使用ToolBar控件替代ActionBar控件,需要在java代码中使用setSupportActionBar()方法,如下:

1 Toolbar toolbar = (Toolbar) this.findViewById(R.id.toolBar);
2 this.setSupportActionBar(toolbar);

通常的报错有两种:

1.方法参数报错


这种报错是因为导错了类,把以下代码

1 import android.widget.Toolbar;

更换成以下代码

1 import android.support.v7.widget.Toolbar;

2.方法名报错

需要继承ActionBarActivity类或者AppCompatActivity类。

因为ActionBarActivity类已经过时了,所以推荐继承AppCompatActivity类。

注意:如果继承AppCompatActivity类,则需要使用Theme.AppCompat.Light.NoActionBar主题,举个栗子

1 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
2         <item name="android:windowNoTitle">true</item>
3         <item name="android:windowActionBar">false</item>
4 </style>
时间: 2024-10-10 13:26:25

setSupportActionBar()方法报错的相关文章

Spring Data JPA使用getOne方法报错:Method threw &#39;org.hibernate.LazyInitializationException&#39; exception. Cannot evaluate

getOne是懒加载,需要增加这个配置: spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true,但这种方式不太友好,建议不要使用. 解释:https://vladmihalcea.com/2016... 每次初始化一个实体的关联就会创建一个临时的session来加载,每个临时的session都会获取一个临时的数据库连接,开启一个新的事物.这就导致对底层连接池压力很大,而且事物日志也会被每次flush.设想一下:假如我们查询了

python struct.pack方法报错argument for &#39;s&#39; must be a bytes object 解决

参考 https://blog.csdn.net/weixin_38383877/article/details/81100192 在python3下使用struct模块代码 fileHead = struct.pack('128sl', os.path.basename(filePath),os.stat(filePath).st_size); 抛出异常: argument for 's' must be a bytes object必须要是字节类型. 解决办法: 把字符串的地方转为字节类型,

SpringBoot关于SpringDataJpa中findOne()方法报错问题

问题描述: 首先用的SpringDataJPA的1.11版本,可以使用findOne()方法根据id查询 然后我使用了2.0.5版本,发现findOne()方法报错了,不能用来当作根据id查询了. 当使用findById(ID)进行查询的时候,页面使用Thymeleaf接收Controller出过来的数据的时候,页面接收失败. 解决办法: 使用findById(id).get()来进行查询.   原文地址:https://www.cnblogs.com/JohnEricCheng/p/87937

Flex动态获取方法报错

1.错误描述 2.错误原因 由于Flex文件修改后,需要将其编译成swf文件,刚修改的方法没有编译,再加上历史缓存的原因,导致报错 3.解决办法 将Flex项目重新clean一下,并将MyEclipse刷新一下,浏览器的缓存清除一下

C# 项目迁移 Microsoft.VisualStudio.Tools.Office.BuildTasks 生成解决方法报错:请确认 &lt;UsingTask&gt; 声明正确,该程序集及其所有依赖项都可用

1.在Server2003上使用vs2010开发的项目,移到Win8上,同样使用vs2010打开.在生成解决方案的时候有如下报错: 未能从程序集 Microsoft.VisualStudio.Tools.Office.BuildTasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 加载任务“FindRibbons”. 请确认 <UsingTask> 声明正确,该程序集及其所有依赖项都可用,并且该任务包

jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法

jQuery(function ($) { // 备份jquery的ajax方法 var _ajax = $.ajax; // 重写ajax方法,先判断登录在执行success函数 $.ajax = function (opt) { var _success = opt && opt.success || function (a, b) { }; var _opt = $.extend(opt, { success: function (data, textStatus) { // 如果后

捉虫经历:weblogic 下调用 getServletContext() 方法报错

原来在 tomcat 下部署的应用没什么问题,今天部署到 weblogic 下,程序跑不起来了,报错信息如下: the method getServletContext() is undefined ps:我在jsp页面中调用了this.getServletContext() 方法,在 tomcat 下没问题,但部署在 weblogic 下就报错了. 在 google 搜索框中直接输入:weblogic the method getServletContext() is undefined 然后

DefaultHttpClient execute() 方法报错

今天写代码,这里报错 public static String doGet(String url, boolean useCache, String encoding) throws Exception { if (TextUtils.isEmpty(url)) { throw new NullPointerException("网络请求地址不能为空"); } String data = null; if (useCache) { data = doGetCache(url); if

重写getColumnName()方法报错java.lang.StackOverflowError

我在一个方法里面初始化了一个列名,并添加了列名 columnNames = new Vector(); columnNames.add("学号"); columnNames.add("姓名"); columnNames.add("性别"); columnNames.add("年龄"); columnNames.add("籍贯"); columnNames.add("系别"); 因为在JT