使用setEnabled(false)和setEnabled(true)后分配给按钮的错误drawable

时间:2014-10-28 14:20:42

标签: android

基本理念:我有一个分配了 drawable1 的按钮。按下按钮时, drawable2 被分配。

我的代码的作用:在发布 button1 时,它设置为setEnabled(false),全屏 ImageView button2 < / em>显示在顶部。单击 button2 时, ImageView 设置为null, button1 设置为setEnabled(true), button2 为设置隐形。

不需要的行为:点击 button2 后, button1 已分配 drawable2 ,即使未按下 drawable2 。< / p>

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">     
    <item
        android:state_enabled="true" 
        android:state_pressed="true"  
        android:drawable="@drawable/capture_button_pressed" /> 
    <item 
        android:state_enabled="false" 
        android:drawable="@drawable/capture_button" />    
    <item
        android:state_enabled="true" 
        android:drawable="@drawable/capture_button" />
</selector>

-

maCaptureButton = (Button) findViewById(R.id.button_capture);
maCaptureButton.setOnTouchListener(
    new View.OnTouchListener() {
         @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
            ...
            }
            else if (event.getAction() == MotionEvent.ACTION_UP) {
                maCaptureButton.setEnabled(false);
                maImageView.setImageBitmap(...);
                maBackButton.setVisibility(View.VISIBLE);
            }
            return false;
        }
    }       
);

maBackButton = (Button) findViewById(R.id.button_back);
maBackButton.setOnClickListener(
    new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            maImageView.setImageDrawable(null);
            maBackButton.setVisibility(View.GONE);
            maCaptureButton.setEnabled(true);
        }
    }
);

我几个小时一直在努力解决这个问题。一切正常,直到我在代码中添加了setEnabled(false)和setEnabled(true)。

0 个答案:

没有答案