更改操作栏中的图标

时间:2013-01-04 18:10:12

标签: android nullpointerexception android-actionbar

我想将我的应用程序的徽标放在屏幕顶部的操作栏中。当前显示的是默认的绿色android启动器图标。

enter image description here

我尝试了以下但未看到任何变化:

我进入了我的清单文件并修改了android:icon代码......

 <application
    android:allowBackup="true"
    android:logo="@drawable/logo"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

这不起作用,所以我在我的代码中创建了一个ActionBar对象并使用了setIcon方法。

ab.setIcon(R.drawable.logo);

但是上面的代码行会生成以下运行时错误:

** java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.waitronproto3 / com.example.waitronproto3.MainActivity}:java.lang.NullPointerException **

任何人都可以看到为什么会这样,资源R.drawable.logo存在,因为我可以在文件夹中看到它并且IDE中没有生成错误。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

是的,据我所知,没有android:logo财产。你不能只创建一个ActionBar ...你使用过这个吗?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(...);
    getActionBar().setLogo(R.drawable.logo)`
}

答案 1 :(得分:0)

一切都是对的,除了我忘了引用ActionBar。下面的代码解决了这个问题。

ab = this.getActionBar();
    ab.setIcon(R.drawable.logo);