Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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 ViewPager onClickListener don';t工作-关闭应用程序时出错_Android_Imageview_Android Viewpager_Android Mediaplayer_Onclicklistener - Fatal编程技术网

Android ViewPager onClickListener don';t工作-关闭应用程序时出错

Android ViewPager onClickListener don';t工作-关闭应用程序时出错,android,imageview,android-viewpager,android-mediaplayer,onclicklistener,Android,Imageview,Android Viewpager,Android Mediaplayer,Onclicklistener,我的ViewPager和onClickListener有这个问题。我想有一个画廊的图像(一个完美的作品)。当我希望它是可点击的,所以它会根据实际观看的图像播放声音时,问题就出现了。这是最重要的。另一种是添加浮动按钮,但这是第二种情况 工作代码: int file = sounds[position]; final MediaPlayer mp = MediaPlayer.create(context, file); imggun.setOnClickListener(new V

我的ViewPager和onClickListener有这个问题。我想有一个画廊的图像(一个完美的作品)。当我希望它是可点击的,所以它会根据实际观看的图像播放声音时,问题就出现了。这是最重要的。另一种是添加浮动按钮,但这是第二种情况

工作代码:

int file = sounds[position];
    final MediaPlayer mp = MediaPlayer.create(context, file);

    imggun.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {



            mp.start();
//mediaPlayer.start()

编辑: 如果我用如下代码消除编译错误:

imggun.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            int file = R.raw.beerburp;
            MediaPlayer mp = MediaPlayer.create(getApplicationContext(), file);
            mp.start();

        }
    });
我从LogCat那里得到:

01-10 12:53:03.993: E/AndroidRuntime(1380): FATAL EXCEPTION: main
01-10 12:53:03.993: E/AndroidRuntime(1380): java.lang.NullPointerException
01-10 12:53:03.993: E/AndroidRuntime(1380):     atandroid.media.MediaPlayer.create(MediaPlayer.java:668)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at com.example.package_name.ViewPagerAdapter$1.onClick(ViewPagerAdapter.java:81)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at android.view.View.performClick(View.java:2408)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at android.view.View$PerformClick.run(View.java:8817)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at android.os.Handler.handleCallback(Handler.java:587)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at android.os.Looper.loop(Looper.java:143)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at android.app.ActivityThread.main(ActivityThread.java:4914)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at java.lang.reflect.Method.invokeNative(Native Method)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at java.lang.reflect.Method.invoke(Method.java:521)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
01-10 12:53:03.993: E/AndroidRuntime(1380):     at  dalvik.system.NativeStart.main(Native Method)

运行此命令时,您会收到什么错误消息?或者这更像是一个逻辑错误,当您单击某个项时,它不会播放声音,但不会出现语法编译错误?

我发现在onClick中使用此代码时:

int file = sounds[position];
MediaPlayer mp = MediaPlayer.create(getApplicationContext(), file);
mp.start();

我在第二行得到NullPointerException(MediaPlayer mp=…)。我认为这可能是一条出路。

01-09 20:35:35.391:E/AndroidRuntime(12384):致命的例外:main 01-09 20:35:35.391:E/AndroidRuntime(12384):java.lang.NullPointerException 01-09 20:35:35.391:E/AndroidRuntime(12384):在android.media.MediaPlayer.create(MediaPlayer.java:668)01-09 20:35:35:391:E/AndroidRuntime(12384):在com.example..ViewPagerAdapter$1.onClick(ViewPagerAdapter.java:81)如果我在某种程度上消除了编译错误,那么在单击app force关闭后。你能验证这行代码中的声音是否为空吗:int file=sounds[position];我已经用编译错误和无错误(使用LogCat文件)更新了我的问题@reidisakiuse Youractivity.this而不是getApplicationContext()。@JiteshDalsaniya如果我使用MainActivity.this,则此编译错误会被标记为:“在范围内无法访问MainActivity类型的封闭实例”当我使用ViewPagerAdapter.this时,这一行的“create”会得到如下编译错误:“MediaPlayer类型中的create(Context,int)方法不适用于参数(ViewPagerAdapter,int)”,您必须在这里更改MediaPlayer mp=MediaPlayer.create(getApplicationContext(),file);这是我以前做过的。我应该分享更多的代码吗?也许在其他方面还缺少什么?@JiteshDalsaniya-更新
int file = sounds[position];
MediaPlayer mp = MediaPlayer.create(getApplicationContext(), file);
mp.start();