Android ActionBar隐藏在DroidGap(PhoneGap / Cordova)中

时间:2013-04-03 13:49:18

标签: android cordova android-actionbar hidden

我花了几个小时让Actionbar可见而没有成功:

使用我的RegisterActivity,我会收集一些登录数据然后启动MainActivity。在RegisterActivity中,我有一个Actionbar但没有MainActivity:

AndroidManifest:

    <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>

RegisterActivity:

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

MainActivity:

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

通常情况下应该有一个Actionbar但没有!

希望有人能解决我的问题?!​​

由于

3 个答案:

答案 0 :(得分:4)

我解决了我的问题:

我的RegisterActivity扩展了Class Activity!我的MainActivity从Phonegap2.5.0(又名Apache Cordova)扩展了DroidGap类。

我更改了MainActivity,以便它扩展Activity,结果是ActionBar可见: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 ....

答案 1 :(得分:1)

设置布尔属性ShowTitle的正确方法是使用config.xml中的首选项。

添加

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

到config.xml以在Android上启用ActionBar。

答案 2 :(得分:0)

你确定没有行:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
onCreate()方法中的

尝试:

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

...
this.requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
...