2013-12-03 4 views
0

поэтому в моем основном действии, в методе onCreate(), я проверяю, запускается ли приложение первым с помощью общих настроек ... Если это первый запуск приложения, пользователь перенаправляется на активность приветствия, а затем, когда я нажимаю кнопку «Назад» и возвращаюсь к основному действию, заголовок в действии не отображается. Я тестировал с помощью api 9 и 17, и это происходит только с api 9, поэтому я предполагаю, что ошибка должна быть чем-то вроде использования библиотеки поддержки для панели действий. Может ли кто-нибудь мне помочь?Android: заголовок панели действий исчезает

Главная:

import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.Menu; 

public class MainActivity extends ActionBarActivity { 

    SessionManager session; 

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

     // session 
     session = new SessionManager(getApplicationContext()); 

     // check first time app run 
     session.checkFirstRun(); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

SessionManager Первый запуск метод проверки

// check first run 
    public void checkFirstRun() { 
     if(getFirstRunStatus() == true) { 
      // set first run key as false 
      editor.putBoolean("FIRST_RUN", false); 
      editor.commit(); 

      // first time running the app, redirect user to welcome activity 
      Intent i = new Intent(_context, WelcomeActivity.class); 
      // Closing all the Activities 
      i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      // Add new Flag to start new Activity 
      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      _context.startActivity(i); 
     } 
    } 

    public boolean getFirstRunStatus() { 
     return pref.getBoolean(FIRST_RUN, true); 
    } 

ответ

1

Добавить титул в пару способов:

XML:

<activity 
    android:name=".....WelcomeActivity" 
    android:icon="@drawable/logo" 
    android:label="@string/app_name" 
    </activity> 

на лету:

.setTitle("TITLE"); 
.setIcon(R.drawable.logo); 

Вы можете передать титул в намерения, если вы хотите, чтобы быть динамичным ... не уверен, если это то, что вы хотите:

.setTitle(extras.getString("title")); 

Надежда, что помогает.

+0

действительно, ТАК просто потрясающе! Но подождите, на самом деле это не сработало, ну, это сработало в эмуляторе, и я подумал, что это будет нормально работать на моем реальном устройстве, но я только что протестировал сейчас, и он не работает .. это странно, это должен работать и на устройстве, верно? – yat0

+0

Да ... вы используете actionbar sherlock?> – jasonflaherty

+0

нет, я использую библиотеку appcompat v7, http://developer.android.com/tools/support-library/features.html – yat0

1

попробовать это в onCreateOptionsMenu:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.action_menu_actions, menu); 
    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setTitle("title"); 
    actionBar .setDisplayShowTitleEnabled(true); 
    // OR: 
    // getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME); 
    return true; 
} 
+0

это не сработало, но спасибо в любом случае :) – yat0

Смежные вопросы