2016-07-13 10 views
7

एंड्रॉइड में एक संवाद बॉक्स प्रदर्शित करने का प्रयास करते समय मुझे अपवाद मिल रहा है।

public static void displayShare(){ 
    // show share options 
    CharSequence selections[] = new CharSequence[] {"Email", "SMS", "Tweet", "Phone Call", "Cancel"}; 
    final AlertDialog.Builder builder = new AlertDialog.Builder(CommonVariables.mContext); 
    builder.setTitle("Share your location via..."); 
    builder.setItems(selections, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      switch(which){ 
       case 0: // Email 
        callEmailMethod(); 
        break; 
       case 1: // SMS 
        callSMSMethod(); 
        break; 
       case 2: // Tweet 
        callTwitterMethod(); 
        break; 
       case 3: // Phone Call 
        callNumberMethod(); 
        break; 
       case 4: 
        dialog.cancel(); 
        break; 
      } 
     } 
    }); 
    builder.show(); 
} 

लाइन पर निम्न त्रुटि प्राप्त होता है:: मेरी AlertDialog निम्नलिखित कोड के साथ एक FragmentActivity से कहा जाता है builder.show();

FATAL EXCEPTION: main 
Process: com.au.ewn.melbwater, PID: 2839 
android.content.res.Resources$NotFoundException: Resource ID #0x0 
    at android.content.res.Resources.getValue(Resources.java:1351) 
    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2774) 
    at android.content.res.Resources.getLayout(Resources.java:1165) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:421) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at android.support.v7.app.AlertController$AlertParams.createListView(AlertController.java:879) 
    at android.support.v7.app.AlertController$AlertParams.apply(AlertController.java:856) 
    at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:899) 
    at android.support.v7.app.AlertDialog$Builder.show(AlertDialog.java:917) 
    at com.au.ewn.activities.MainFragment.displayShare(MainFragment.java:1081) 
    at com.au.ewn.activities.HelpMeScreen$2.onClick(HelpMeScreen.java:257) 
    at android.view.View.performClick(View.java:5198) 
    at android.view.View$PerformClick.run(View.java:21147) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

मैंने सब कुछ करने की कोशिश की है (सही समाधान को छोड़कर, ऐसा लगता है)। हर प्रकार की सहायता का स्वागत है, धन्यवाद।

नोट: CommonVariables.mContext FragmentActivity के संदर्भ और अशक्त नहीं है: CommonVariables.mContext = FragmentAct.this;

+1

http://stackoverflow.com/questions/33025719/resourcesnotfoundexception-resource-id-0x0-in-alertdialog – Bill

+0

क्या आपको यकीन है 'mContext' वर्तमान है और गतिविधि के कुछ पिछले तत्कालता का जिक्र नहीं करते? –

+0

स्वीकृत उत्तर में मदद नहीं मिली, मैंने एक घंटे पहले कोशिश की। दूसरी टिप्पणी में, अलर्टडियलोग के लिए कोई स्टाइल संसाधन नहीं था, जो कि कई डेवलपर्स के साथ काम करने की खुशी थी। मुझे उस पर वापस इंगित करने के लिए धन्यवाद! – Nickmccomb

उत्तर

14

समस्या यह है कि अपने प्रोजेक्ट AlertDialog के लिए शैली संसाधन याद आ रही थी था:

styles.xml में इस डाल :

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.MyDialogTheme); 
:

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert" /> 

अपने कोड में जहां चेतावनी संवाद बनाने के इस डाल जवाब के लिए इस पोस्ट में @Fraranc के लिए

धन्यवाद: Resources$NotFoundException: Resource ID #0x0 in AlertDialog

संबंधित मुद्दे