如何扩展主类在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;
}
//...
}
是这么想的工作:( – jgiunta
什么是错误你确定从actionbarsherlock包导入例如'com.actionbarsherlock.ActionBarSherlock.OnMenuItemSelectedListener' –
检查了这一点:HTTPS: //issues.apache.org/jira/browse/CB-960。它说你必须对res/references进行硬编码,比如'sherlock.setContentView(0x7f030000)'。你还必须调用'super.setBooleanProperty(“showTitle”,真)'。 –