2013-02-15 52 views
6

मुझे यहां एक बड़ी त्रुटि है। मैं supportInvalidateOptionsMenu() के साथ एक्शनबार मेनू को बदलने की कोशिश कर रहा हूं; लेकिन जब फ़ंक्शन निष्पादित किया जाता है, तो अनुप्रयोग त्रुटियों के बिना बंद हो जाता है।शेरलॉक एक्शनबार अमान्येटऑप्शनमेनू()

अजीब बात है कि सब कुछ मेरे गैलेक्सी नेक्सस (4.2.2) पर सामान्य रूप से काम करता है, लेकिन एंड्रॉयड 2.1

साथ (एंड्रॉयड 4.0.3) मेरे दोस्त की मोबाइल में है और न ही मेरी एमुलेटर में काम नहीं करता यहाँ है मेरी कोड:

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

क्या कोई मेरी मदद कर सकता है? :/

उत्तर

20

यह संभवतः थ्रेडिंग समस्या है। आपको मुख्य थ्रेड के बाहर यूआई एक्सेस के बारे में लॉग त्रुटियां देखना चाहिए। शायद आप उन्हें फ़िल्टर कर रहे हैं? पूर्ण लॉग को देखें, न सिर्फ आपके पैकेज के लिए लॉग।

Building Web Apps in Webview से

:

नोट: उद्देश्य यह है कि आपकी जावास्क्रिप्ट के लिए बाध्य है धागा है जिसमें यह निर्माण किया गया था में एक और सूत्र में चलाता है और नहीं।

प्रयास करें:

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

धन्यवाद! वह हल हो गया –