ImageButton改变了drawable

时间:2014-06-25 12:30:06

标签: android android-imagebutton

我收到了NullPointerException,但我不知道为什么。我正在使用一个ImageButton,当我点击按钮的drawable更改。我在代码中找不到问题。有人可以帮帮我吗?这是我的代码。感谢。

if(v.getId() == R.id.btn_repetir){
            Drawable drawable = buttonRepeat.getDrawable();
            if (drawable.getConstantState().equals(getResources().getDrawable(R.drawable.repeat).getConstantState())){
                mediaPlayer.setLooping(true);
                buttonRepeat.setImageResource(R.drawable.repeat_pulsado);
            }
            else{
                mediaPlayer.setLooping(false);
                buttonRepeat.setImageResource(R.drawable.repeat);
            }

        }

这是我的日志猫:

06-25 14:18:32.450: E/AndroidRuntime(3445): FATAL EXCEPTION: main
06-25 14:18:32.450: E/AndroidRuntime(3445): java.lang.NullPointerException
06-25 14:18:32.450: E/AndroidRuntime(3445):     at my.package.com.Activity.onClick(Activity.java:238)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at android.view.View.performClick(View.java:2501)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at android.view.View$PerformClick.run(View.java:9107)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at android.os.Handler.handleCallback(Handler.java:587)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at android.os.Looper.loop(Looper.java:130)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at android.app.ActivityThread.main(ActivityThread.java:3835)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at java.lang.reflect.Method.invokeNative(Native Method)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at java.lang.reflect.Method.invoke(Method.java:507)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
06-25 14:18:32.450: E/AndroidRuntime(3445):     at dalvik.system.NativeStart.main(Native Method)

问题的关键是:

if(drawable.getConstantState().equals(getResources().getDrawable(R.drawable.repeat).getConstantState()))

可绘制的存在。

0 个答案:

没有答案