2013-02-15 21 views
6

Burada büyük bir hatayla karşılaşıyorum. Hareket çubuğu menülerini supportInvalidateOptionsMenu() ile değiştirmeye çalışıyorum; ancak işlev yürütüldüğünde, uygulama hatasız kapanır.Sherlock Actionbar invalidateOptionsMenu()

garip bir şey her şey benim Galaxy Nexus (4.2.2) normalde çalışır, ancak İşte android 2.1

ile (4.0.3 android) arkadaşımın mobil ne de benim emülatörü çalışmıyor olmasıdır benim kod:

protected void onCreate(Bundle savedInstanceState) { 
... 
actionbar = getSupportActionBar(); 
... 
myWebView = (WebView) findViewById(R.id.webview); 
myWebView.getSettings().setJavaScriptEnabled(true); 
myWebView.addJavascriptInterface(new WebAppInterface(this), "Android"); 
myWebView.loadUrl(getString(R.string.site_load)); 
... 
} 

public class WebAppInterface { 
SherlockActivity mActivity; 
WebAppInterface(SherlockActivity c) {mActivity = c;} 
public void setrefreshon() {showRefresh = true; mActivity.supportInvalidateOptionsMenu();} 
} 

Birisi bana yardımcı olabilir mi? :/

cevap

20

Bu büyük olasılıkla bir iş parçacığı sorunudur. Ana iş parçacığının dışındaki UI erişimi hakkında kaydedilmiş hataları görmelisiniz. Belki de onları filtreliyorsunuz? Tam günlüğüne bak, sadece paketin için günlüğü değil. Building Web Apps in Webview itibaren

:

Not: dikili olduğu dizisindeki başka parçacığı çalışır ve değil JavaScript'inizde bağlı olduğu nesne.

Dene:

mActivity.runOnUiThread(new Runnable(){ 
    @Override 
    public void run(){ 
    mActivity.supportInvalidateOptionsMenu(); 
    } 
}); 
+0

teşekkürler! Bu çözüldü –

İlgili konular