2012-02-13 188 views
0

我有一个父活动持有ActionBar对象:儿童活动继承父活动

import android.os.Bundle; 
import android.support.v4.app.ActionBar; 
import android.support.v4.app.FragmentActivity; 

public class ParentActivity extends FragmentActivity{ 

    private ActionBar actionBar; //Action bar 

    @Override 
    protected void onCreate(Bundle arg0) { 
     super.onCreate(arg0); 
     actionBar = getSupportActionBar(); 
    } 

    public void setActionBar(String title){ 

     actionBar.setTitle(title); 
    } 
} 

然后,我的孩子活动继承父活动,并尝试设置父ActionBar

public class ChildActivity extends ParentActivity { 

    @Override 
    protected void onCreate(Bundle arg0) { 
    super.onCreate(arg0); 

    //try to set action bar title, but get error 
    setActionBar(getString(R.string.myname)); 
     ... 
    } 
} 

但我得到了错误:

android.app.SuperNotCalledException 
at ...ParentActivity.setActionBar(..) 

然后,我陈GED使用super.setActionBar(...);

我得到错误:NullPointerException setActionBar

为什么?

+1

你能展示整个stacktrace并发布引发异常的代码行吗? – m0skit0 2012-02-13 13:23:40

+0

另外,getSupportActionBar的内容会很好 - 在某些情况下可以返回null吗? – Guillaume 2012-02-13 13:57:37

回答

0

您试图使用空值对象的值,因此它显示空指针异常。给ActionBar对象一些内存运算符new

ActionBar actionbar=new ActiobBar(this); 
相关问题