Android ActionBar скрыт с помощью DroidGap (PhoneGap/Cordova)

я только что потратил несколько часов на то, чтобы сделать панель действий видимой, но безуспешно:

С помощью моей RegisterActivity я собираю некоторые данные для входа, а затем запускаю MainActivity. В RegisterActivity у меня есть панель действий, но не в MainActivity:

AndroidМанифест:

    <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="17"/>
    <application android:allowBackup="true"
                 android:icon="@drawable/ic_launcher" 
                 android:label="@string/app_name"
                  >

        <activity android:name="RegisterActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.Holo" >
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER"/>
                  </intent-filter>
        </activity>

        <activity android:name="MainActivity" 
                  android:label="@string/app_name"
                  android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
                  android:theme="@android:style/Theme.Holo" >
        </activity>
    </application>

Регистрация Активность:

...
Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("username", username);
i.putExtra("password", password);
startActivity(i);
...

Основная деятельность:

...
    webview = new WebView(this);
    setContentView(webview);
    webview.loadUrl(address);
...

Обычно должна быть панель действий, но ее нет!

просто надеюсь, что у кого-то есть решение моей проблемы?!

Спасибо


person eismi    schedule 03.04.2013    source источник


Ответы (3)


Я решил свою проблему:

My RegisterActivity расширяет активность класса! My MainActivity расширяет класс DroidGap от Phonegap2.5.0 (он же Apache Cordova).

Я изменил MainActivity, чтобы он расширял действие, и в результате панель действий стала видимой: D

Когда вам понадобится DroidGap, вам придется вставить

super.setBooleanProperty("showTitle", true);

прежде чем позвонить:

super.onCreate(savedInstanceState);

В конце это выглядит так:

public class MainActivity extends DroidGap {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.setBooleanProperty("showTitle", true);
    super.onCreate(savedInstanceState);
//More Code ....
person eismi    schedule 05.04.2013

Правильный способ установки логического свойства ShowTitle — использовать настройки в config.xml.

добавлять

<preference name="ShowTitle" value="true"/>

в config.xml, чтобы включить панель действий на Android.

person mvandillen    schedule 23.04.2015

Вы уверены, что нет строки:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

в методе onCreate()?

Пытаться:

public void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_ACTION_BAR);
        super.onCreate(savedInstanceState);
        ...
        setContentView(...);
        ...

or

...
this.requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
...
person Tom    schedule 03.04.2013
comment
не помогло! я никогда не использовал this.requestWindowFeature(Window.FEATURE_NO_TITLE); проверял ваши предложения, но никакой разницы - person eismi; 04.04.2013