Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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/fsharp/3.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 图像按钮更改可拉伸_Android_Android Imagebutton - Fatal编程技术网

Android 图像按钮更改可拉伸

Android 图像按钮更改可拉伸,android,android-imagebutton,Android,Android Imagebutton,我得到了一个NullPointerException,但我不知道为什么。我使用的是一个ImageButton,当我单击按钮的可绘制部分时,它会发生变化。我在代码中找不到问题。有人能帮我吗?这是我的密码。谢谢 if(v.getId() == R.id.btn_repetir){ Drawable drawable = buttonRepeat.getDrawable(); if (drawable.getConstantState().equals(

我得到了一个NullPointerException,但我不知道为什么。我使用的是一个ImageButton,当我单击按钮的可绘制部分时,它会发生变化。我在代码中找不到问题。有人能帮我吗?这是我的密码。谢谢

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()))

可绘制的存在。

我的问题中出现了我的应用程序包,我有更改,第238行是我在下面列出的行。为什么我的问题是否定的?有人能解释我来改进我的问题吗?我不明白,请检查第一个Drawable Drawable=buttonRepeat.getDrawable;在某些情况下,If drawable可能为空。所以在使用前检查一个变量是否为空。在这种情况下,drawable.getConstantState.equals将抛出一个NPE。可能是因为我使用的是drawable like ImageButton的背景而不是src?谢谢:好的,我看到你正在使用一个可拖动的来检查它的重复模式与否。。。您可以使用布尔值并通过编程设置可绘制的。