2012-02-13 3 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(..) 

Тогда, я чан Гед использовать super.setActionBar(...);

я получил ошибку: NullPointerException setActionBar

Почему ??

+1

Можете ли вы показать весь стек и опубликовать строку кода, которая выдает исключение? – m0skit0

+0

Также было бы полезно получить getSupportActionBar - может ли он вернуть null в некоторых случаях? – Guillaume

ответ

0

Вы пытаетесь использовать значение объекта, которое равно NULL, поэтому оно отображает исключение нулевого указателя. Дайте объекту ActionBar некоторую память оператору new.

ActionBar actionbar=new ActiobBar(this); 
Смежные вопросы