2017-09-18 1 views
-2

Wenn die App dies verwenden möchte und klicken Sie auf die Schaltfläche der Laufzeitfehler auftritt und ich weiß nicht, wie dies zu fic, und dieser Code in Fragment verwendet und jetzt nedd diese in Tätigkeit zu verwenden, und ich denke, es ist das ProblemIch kann Alertdialog Builder in Android-Aktivität verwenden und hat Laufzeitfehler

post_image.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      checkPermissionREAD_EXTERNAL_STORAGE(this); 

      CharSequence items[] = {"گرفتن تصویر از دوربین","گرفتن ویدیو از دوربین", 
        "انتخاب تصویر از گالری","انتخاب ویدیو از گالری"}; 
      AlertDialog.Builder ab = new AlertDialog.Builder(NewPost.this); 
      ab.setTitle("انتخاب از :"); 
      ab.setItems(items, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int position) { 
        switch (position) 
        { 
         case 0 : 
          take_pic_from_camera(); 
          break; 
         case 1 : 
          take_video_from_camera(); 
          break; 
         case 2 : 
          pick_pic_from_gallery(); 
          break; 
         case 3 : 
          pick_video_from_gallery(); 
          break; 
        } 
       } 
      }); 
      ab.create().show(); 
     } 
    }); 

und mein Fehler ist: Juli 9-18: 33: 07.618 8846-8846/com.irprogram.ted E/Android Runtime:

FATAL EXCEPTION: main 
                   Process: com.irprogram.ted, PID: 8846 
                   android.content.res.Resources$NotFoundException: Resource ID #0x0 
                    at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190) 
                    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2094) 
                    at android.content.res.Resources.getLayout(Resources.java:1111) 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:424) 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:377) 
                    at android.support.v7.app.AlertController$AlertParams.createListView(AlertController.java:880) 
                    at android.support.v7.app.AlertController$AlertParams.apply(AlertController.java:857) 
                    at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:899) 
                    at com.irprogram.ted.NewPost$2.onClick(NewPost.java:165) 
                    at android.view.View.performClick(View.java:5610) 
                    at android.view.View$PerformClick.run(View.java:22265) 
                    at android.os.Handler.handleCallback(Handler.java:751) 
                    at android.os.Handler.dispatchMessage(Handler.java:95) 
                    at android.os.Looper.loop(Looper.java:154) 
                    at android.app.ActivityThread.main(ActivityThread.java:6077) 
                    at java.lang.reflect.Method.invoke(Native Method) 
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 
+1

Veröffentlichen Sie auch Ihr Fehlerprotokoll. –

+0

Ich glaube nicht, dass das Problem in diesem Code-Snippet ist ... 'ResourceNotFoundException auf getValue() Zeile 190 der ResourcesImpl-Klasse' –

Antwort

0

Sie haben die Methode setItems aufgerufen, bevor Sie sie angezeigt haben. Versuchen Sie einfach, Ihren Code so zu ändern, dass Sie ab.create().show(); vor ab.setItems() anrufen.

Die Ausnahme kann sein, weil sie OnClickListeneter nicht festlegen kann, bevor sie in der Aktivität sichtbar gemacht wird.

Ich hoffe, es hilft.

Verwandte Themen