我在操作欄(sherlock操作欄)中隱藏我的刷新按鈕。但是,我不知道如何在我的makeupdate()
函數(我需要函數內部的這個調用)內調用操作欄更新(onPrepareOptionsMenu()
或InvalidateOptionsMenu()
)。我已經在計算器搜索和谷歌幾個小時......所有測試並獲得什麼......更新操作欄菜單
我makeupdate()
功能:
public void makeupdate(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
MenuItem item = menu.findItem(R.id.refresh);
item.setVisible(false);
}
編輯 - 我的代碼
public class SiteActivity extends SherlockActivity {
private WebView myWebView;
final Activity MyActivity = this;
com.actionbarsherlock.app.ActionBar actionbar;
private Menu mainMenu;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
actionbar = getSupportActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionbar.setTitle("APP");
actionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);
setContentView(R.layout.site);
myWebView = (WebView) findViewById(R.id.webview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
myWebView.loadUrl("file:///android_asset/noconnection.html");
myWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
MyActivity.setProgress(progress * 100);
}
});
myWebView.setWebViewClient(new SiteActivityClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
myWebView.loadUrl("file:///android_asset/noconnection.html");
}
});
}
public class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void makeupdateshowToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
mainMenu.findItem(R.id.refresh).setVisible(false);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getSupportMenuInflater().inflate(R.layout.actionbar, menu);
mainMenu = menu;
return true;
}
}
是makeupdate您的活動的方法是什麼? – fedepaol
是的,我正在使用'addJavascriptInterface',所以函數在我的webview中被javascript調用 - 這個活動是一個基於webview的活動。 –
您是否擴展了SherlockActivity/SherlockFragmentActivity? – fedepaol