【问题标题】:Android ActionBar returns null on different activity (API19)Android ActionBar 在不同的活动上返回 null (API19)
【发布时间】:2014-07-09 22:31:00
【问题描述】:

在主要活动中我有这个代码

actionBar = getActionBar();
actionBar.setTitle("Title");

它有效。

然后在第一个活动调用的另一个活动中,我显示了相同的操作栏,当我调用 getActionBar() 更改标题时,它总是返回 null,为什么?

这是在调用 setTitle 时崩溃的活动,因为 actionbar 为空

public class SearchResultsActivity extends Activity {

protected GridView grid;
protected TextView categoryTitle;
protected int theme;
private AQuery aq;
private String strSearchString;
private ActionBar actionBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_search_results);

    setTheme(android.R.style.Theme_Holo);
    setContentView(Themes.getGridLayout(theme));

    aq = new AQuery(this);

    actionBar=getActionBar();
    actionBar.setTitle("new title"); // <- Here it crashes because actionbar is null

    grid = (GridView) findViewById(R.id.grid);
    grid.setOnItemClickListener(gridItemListener);

    init();

    handleIntent(getIntent());
}

操作栏的菜单在所有活动上都没有问题

【问题讨论】:

  • 您确定 a) 新活动不是对话活动,并且 b) 您使用的是正确的操作栏而不是 sherlock 或支持者吗?
  • 是activity,actionbar是android内置的,不是v4的支持
  • 请发布返回 null 的活动。
  • 你遇到了什么错误..? api版本..?
  • API 19 这是错误 FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.SearchResultsActivity}: java.lang.NullPointerException

标签: android android-activity android-actionbar


【解决方案1】:

我遇到了同样的问题。我的情况是在调用 getActionBar() 之前使用 setContentView()。

另外请注意你的应用主题

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Holo.Light" >
    ...
</application>

我认为只有带有&lt;item name="android:windowActionBar"&gt;true&lt;/item&gt; 的主题才能使用。

【讨论】:

    【解决方案2】:

    您正在从 Activity 扩展。如果您从ActionBarActivity 扩展怎么办。尝试一下并告诉我们是否有问题。您必须添加v7 appcompat library

    【讨论】:

    • 它与从 Activity 扩展的主要活动完全相同,并且可以正常工作。我不想使用 appcompat 库,因为该应用程序只能从 ICS 及更高版本运行。
    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2015-02-20
    • 1970-01-01
    相关资源
    最近更新 更多