Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 嵌入到对话框中的griview的上下文变为空_Android_Gridview_Imageview_Gallery - Fatal编程技术网

Android 嵌入到对话框中的griview的上下文变为空

Android 嵌入到对话框中的griview的上下文变为空,android,gridview,imageview,gallery,Android,Gridview,Imageview,Gallery,我试图创建显示已捕获照片库的对话框,但在此对话框上运行时,gv.setAdapter(新的EOrderGalleryAdapter(getApplicationContext(),data))处出现Null异常发生 关于使用默认图库或其他工具打开外部SD卡中文件的照片,是否有任何提示或指导 下面是我的代码 final Dialog dialog = new Dialog(getBaseContext()); //remove the default title

我试图创建显示已捕获照片库的对话框,但在此对话框上运行时,
gv.setAdapter(新的EOrderGalleryAdapter(getApplicationContext(),data))处出现Null异常发生

关于使用默认图库或其他工具打开外部SD卡中文件的照片,是否有任何提示或指导

下面是我的代码

        final Dialog dialog = new Dialog(getBaseContext());

        //remove the default title if you want to
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        //here is where we inflate our custom xml containing a gridview
        dialog.setContentView(R.layout.gallery);                    
        String sdCardRootPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString()+"/TVB_PV_photo";
        File rootFolder = new File(sdCardRootPath);
        File[] picFiles = rootFolder.listFiles();
        ArrayList<Bitmap> data = new ArrayList<Bitmap>();
        for (File pic:picFiles) {

            //Bitmap b= BitmapFactory.decodeFile(pic.getAbsolutePath());
            Bitmap b =  decodeFile(pic,4);
            data.add(b);
        }
        GridView gv = (GridView) findViewById(R.id.grid_view);




        gv.setAdapter(new EOrderGalleryAdapter(getApplicationContext(), data));
        gv.setOnItemClickListener(new OnItemClickListener(){

            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {
                // TODO Auto-generated method stub
                   Toast.makeText(getBaseContext(), 
                            "photo" + (position + 1) + " selected", 
                            Toast.LENGTH_SHORT).show();
            }});                    

我认为问题不在于
getApplicationContext()


在调用
gv.setAdapter
时,空指针应该是
gv
,因此它检测到gv为空并抛出异常

getApplicationContext()
替换为
gv.getContext()
    06-21 10:19:50.946: E/AndroidRuntime(3925):     at android.view.View$1.onClick(View.java:3125)
06-21 10:19:50.946: E/AndroidRuntime(3925):     ... 11 more
06-21 10:19:50.946: E/AndroidRuntime(3925): Caused by: java.lang.NullPointerException
06-21 10:19:50.946: E/AndroidRuntime(3925):     at atvpv.test.OrderSystem1.EOSCustPayment.onCreateDialog(EOSCustPayment.java:352)
06-21 10:19:50.946: E/AndroidRuntime(3925):     at android.app.Activity.onCreateDialog(Activity.java:2828)
06-21 10:19:50.946: E/AndroidRuntime(3925):     at android.app.Activity.createDialog(Activity.java:944)
06-21 10:19:50.946: E/AndroidRuntime(3925):     at android.app.Activity.showDialog(Activity.java:2921)
06-21 10:19:50.946: E/AndroidRuntime(3925):     at android.app.Activity.showDialog(Activity.java:2880)
06-21 10:19:50.946: E/AndroidRuntime(3925):     at atvpv.test.OrderSystem1.EOSCustPayment.buttonGallery(EOSCustPayment.java:421)