ViewPager onClickListener不起作用 - 关闭应用程序并显示错误

时间:2014-01-09 19:48:53

标签: android imageview android-viewpager android-mediaplayer onclicklistener

我在ViewPager nad 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)

2 个答案:

答案 0 :(得分:0)

运行此错误时会出现什么错误消息,或者这更像是一个逻辑错误,您单击某个项目并且它没有播放声音但没有语法编译错误?

答案 1 :(得分:0)

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

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

我在第二行得到NullPointerException(MediaPlayer mp = ...)。我认为这可能是要走的路。