Android ViewPager onClickListener don';t工作-关闭应用程序时出错
我的ViewPager和onClickListener有这个问题。我想有一个画廊的图像(一个完美的作品)。当我希望它是可点击的,所以它会根据实际观看的图像播放声音时,问题就出现了。这是最重要的。另一种是添加浮动按钮,但这是第二种情况 工作代码: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
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();