2014-12-09 2 views
2

В моем андроиде приложения я установить имя озаглавлена ​​активность в AndroidManifest.xaml, как показано ниже:Как получить активность имя заголовка с помощью программно Java андроида

<activity 
     android:name=".LoginSuccess" 
     android:label="Home" > // this is title name 
</activity> 

И деятельность название названия Home и я тусклый, чтобы получить эту actitvity имя название в Java страницы моего actitvity, я пытаюсь, как показано ниже:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fragment_sample); 

     android.support.v7.app.ActionBar actionBar = getSupportActionBar(); 
     pageTitle = actionBar.getTitle().toString(); 
} 

Но я получаю ниже исключения в этой линии pageTitle = actionBar.getTitle().toString();:

java.lang.NullPointerException 

Просьба предложить мне, что я могу сделать, чтобы решить эту проблему,

ждет ответа.

Спасибо.

+0

Mb Это beacuse вы пытаетесь получить титул, прежде чем он создает. Попробуйте получить название с задержкой. – Suvitruf

+0

отправить стоп-трек –

ответ

13

Вы также можете получить как это от PackageManager

ActivityInfo activityInfo = getPackageManager().getActivityInfo(
       getComponentName(), PackageManager.GET_META_DATA); 
String title = activityInfo.loadLabel(getPackageManager()) 
       .toString(); 
0

Попробуйте использовать следующий код для получения текущего имени активности в файле класса.

this.getClass().getSimpleName() 
+0

Это даст вам имя класса NOT label. –

0

Это потому, что вы пытаетесь получить титул до его создания.

Вы можете попробовать сделать это с задержкой в ​​методе onCreate:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fragment_sample); 

     new Handler().postDelayed(new Runnable() { 

      @Override 
      public void run() { 

       android.support.v7.app.ActionBar actionBar = getSupportActionBar(); 
       pageTitle = actionBar.getTitle().toString(); 
      } 
     }, 500); 
} 

Он отлично работает.

+0

Я поставил такой же код выше, но его не получил название. и не входит в метод 'run()'. – user88

0

Определите свои строки в файле Strings.xml, а затем попытайтесь сделать то же самое с задержкой, это может сработать.

2
ActionBar actionBar = getActionBar(); 
String classTitle = actionBar.getTitle().toString(); 
Смежные вопросы