如何扩展主类在Android上使用Sherlock Action Bar和PhoneGap

问题描述:

我有一个问题,我想在Android项目上一起使用Sherlock Action Bar和PhoneGap。如何扩展主类在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的代码,它的评论,boths代码中的一个时,它的评论和其他没有工作,所以我需要两个结合boths和扩展主类夏洛克和PhoneGap的(以包括科尔多瓦web视图)。

这可能吗?

在此先感谢

您是否尝试过使用静态连接方法?例如:

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

    //... 
} 
+0

是这么想的工作:( – jgiunta

+0

什么是错误你确定从actionbarsherlock包导入例如'com.actionbarsherlock.ActionBarSherlock.OnMenuItemSelectedListener' –

+0

检查了这一点:HTTPS: //issues.apache.org/jira/browse/CB-960。它说你必须对res/references进行硬编码,比如'sherlock.setContentView(0x7f030000)'。你还必须调用'super.setBooleanProperty(“showTitle”,真)'。 –