0

Android プロジェクトで Sherlock Action Bar と PhoneGap を一緒に使用したいのですが、問題があります。

Android が複数の拡張機能をサポートしていないという別のスタック オーバーフローの投稿を読みました。

これは私の作業コードです。

package com.inmo.mobile;

// import org.apache.cordova.DroidGap;
import android.os.Bundle;
import android.widget.Toast;

import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;

import android.app.Activity;
import org.apache.cordova.*;

//public class Inmo extends DroidGap {
//
//    @Override
//    public void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        super.setIntegerProperty("splashscreen", R.drawable.splash);
//        super.loadUrl("file:///android_asset/www/index.html", 5000);
//    }
//    
//}

public class Inmo extends SherlockActivity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == R.id.favorites) {
            //startActivity(new Intent(this, FavoritesActivity.class));
            Toast.makeText(this, "favoritos pulsado", Toast.LENGTH_SHORT).show();
        } else if (item.getItemId() == R.id.preferences) {
            Toast.makeText(this, "configuración pulsado", Toast.LENGTH_SHORT).show();
        }
        return true;
    }

}

コメントされている PhoneGap コード、両方のコードは、一方がコメントされていて、もう一方がコメントされていない場合に機能するため、2 つの両方を組み合わせて、メイン クラスを sherlock と phonegap に拡張する必要があります (cordova webview に含めるため)。

これは可能ですか?

前もって感謝します

4

1 に答える 1

0

静的アタッチメント メソッドを使用してみましたか? 例えば:

public class Inmo extends DroidGap implements ActionBar.TabListener, 
        OnCreateOptionsMenuListener, OnMenuItemSelectedListener {
    private ActionBarSherlock mSherlock;

    protected final ActionBarSherlock getSherlock() {
        if (mSherlock == null) {
            mSherlock = ActionBarSherlock.wrap(this);
        }
        return mSherlock;
    }

    //...
}
于 2012-09-22T12:15:34.577 に答える