CheckableFrameLayout.java revision 67949f5f3bc1f721fa5f63250f0fd74a44f5381f
1c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn/* 2c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Copyright (C) 2011 The Android Open Source Project 3c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 4c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 5c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * you may not use this file except in compliance with the License. 6c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * You may obtain a copy of the License at 7c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 8c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 9c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 10c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Unless required by applicable law or agreed to in writing, software 11c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 12c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * See the License for the specific language governing permissions and 14c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * limitations under the License. 15c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn */ 16c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 17c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornpackage com.example.android.supportv4.view; 18c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 19c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.content.Context; 20c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.graphics.drawable.ColorDrawable; 2167949f5f3bc1f721fa5f63250f0fd74a44f5381fAurimas Liutikasimport android.support.v4.view.ViewCompat; 22c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.util.AttributeSet; 23c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.widget.Checkable; 24c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.widget.FrameLayout; 25c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 26c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornpublic class CheckableFrameLayout extends FrameLayout implements Checkable { 27c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn private boolean mChecked; 28c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 29c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public CheckableFrameLayout(Context context) { 30c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super(context); 31c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 32c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 33c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public CheckableFrameLayout(Context context, AttributeSet attrs) { 34c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super(context, attrs); 35c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 36c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 37c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void setChecked(boolean checked) { 38c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn mChecked = checked; 3967949f5f3bc1f721fa5f63250f0fd74a44f5381fAurimas Liutikas ViewCompat.setBackground(this, checked ? new ColorDrawable(0xff0000a0) : null); 40c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 41c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 42c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public boolean isChecked() { 43c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return mChecked; 44c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 45c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 46c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void toggle() { 47c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn setChecked(!mChecked); 48c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 49c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 50c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn} 51