我正在使用JavascriptInterface从webView开始活动。这是代码: 我将界面添加到webview:
myWebView.addJavascriptInterface(new MyInterface (this), "MyInterface ");
这是MyInterface:
public class MyInterface {
MyActivity fatherActivity;
public MyInterface (){}
public MyInterface (MainActivity fatherActivity){
this.fatherActivity=fatherActivity;
}
@JavascriptInterface
public void open(){
Intent intent = new Intent(fatherActivity, NewActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Context ctx = fatherActivity.getApplicationContext();
ctx.startActivity(intent);
dialog.dismiss();
}
}
这是res / menu / refMenu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menuRefresh"
android:icon="@drawable/ic_menu_refresh"
android:orderInCategory="1"
android:showAsAction="ifRoom|withText"
android:title="@string/action_refresh"/>
在NewActivity中,我把
public class NewActivity extends ActionBarActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.refMenu, menu);
return super.onCreateOptionsMenu(menu);
}
}
当然我在AndroidManifest中使用了支持的主题:
<activity
android:name="my.package.NewActivity"
android:label="@string/title_activity_new"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
</activity>
如果我将菜单放在我的第一个活动中,那就很顺利......但是在NewActivity中它没有显示。
你认为错在哪里?
UPDATE:似乎扩展ActionBarActivity可能会成为一个问题,因为如果我将第一个活动作为ActionBarActivity的子类,它既不会在操作栏上显示该项目。但我希望我的应用程序与Gingerbread兼容,所以我必须使用ActionBarActivity。任何解决方案?
已解决: android.support.v7 with `ActionBarActivity` no menu shows