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