0

ボタンを押してレイアウトの背景色を変更しようとしていますが、リリース時に元のドローアブルに戻ります。

次のコードは、背景を変更する onclick ボタンの背景リソースを変更しますが、リリース時には新しい描画可能リソースにとどまります。

btnOne = (Button) findViewById(R.id.btnIcon1);
btnOne.setOnClickListener(oneClick);
btnOne.setOnTouchListener(oneC);

    View.OnClickListener oneClick = new View.OnClickListener() {
        @SuppressLint("NewApi")
        public void onClick(View v) {
            editor.putString("AndroidInfo", "1");
            editor.commit();
            Intent myIntent = new Intent(getApplicationContext(), VersionDetail.class);
            startActivityForResult(myIntent, 0);
            overridePendingTransition(R.anim.right_slide_in, R.anim.right_slide_out);
        }
    };

    View.OnTouchListener oneC = new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            switch(event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                rlOne.setBackgroundResource(R.drawable.dateborderclick);
                return true; // if you want to handle the touch event
            case MotionEvent.ACTION_UP:
                rlOne.setBackgroundResource(R.drawable.dateborder);
                return true; // if you want to handle the touch event
        }
            return false;
        }
    };

日付境界xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <corners
        android:radius="4dp"
        android:topRightRadius="4dp"
        android:bottomRightRadius="4dp"
        android:bottomLeftRadius="4dp" />
    <stroke
        android:width="1dp"
        android:color="#FFFFFF" />
    <solid android:color="#CCE5E5E5" />
</shape>

dateborderclick xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <corners
        android:radius="4dp"
        android:topRightRadius="4dp"
        android:bottomRightRadius="4dp"
        android:bottomLeftRadius="4dp" />
    <stroke
        android:width="1dp"
        android:color="#FFFFFF" />
    <solid android:color="#CCD1FFFE" />
</shape>

dateborder はデフォルトの背景です。ユーザーがボタンを操作すると、dateborder を押すと dateborderclick になり、リリース時に dateborder に戻ります。上記のコードに基づいて動作するはずですが、現在は機能しますが、クリックは機能しません。

4

1 に答える 1