您的位置:首页 > 其它

自定义CheckBox,用自己的方式来实现个性勾选。checkbox与button的联动。

2016-05-26 21:18 435 查看
今天在写东西的时候需要自定义checkbox并且需要通过勾选checkbox为true,下面的button按钮才能进行点击事件等操作,在没有勾选的时候,button会是灰色且不可以操作。

首先我们需要在dw文件下新建一个 xml并且创建<selector的标签>,代码如下

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
//这是代表checkbox被勾选的时候为true的时候checkbox的背景图片就为id为yes的这张

<item android:state_checked="true" android:drawable="@drawable/yes" />

<item android:state_selected="true" android:drawable="@drawable/yes"></item>

<item android:state_pressed="true" android:drawable="@drawable/yes"></item>

<item android:state_checked="false" android:drawable="@drawable/no" />

</selector>

这时候我们该怎么样子去引用我们自定义的东东呢,我们只需要在布局里面 android:background="@drawable/definecheckbox" 就好了

<CheckBox

android:id="@+id/choose"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/definecheckbox"

android:button="@null"

/>
我们开始写逻辑代码,思路为先获得checkbox的引用 然后写它的点击事件,我们要让她跟button进行一个联动的话就要在checkbox的setoncheckchanged的点击事件中来写button的点击事件。代码如下:

package com.example.checkbox;

import android.support.v7.app.ActionBarActivity;

import android.graphics.Color;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.CompoundButton;

import android.widget.CompoundButton.OnCheckedChangeListener;

import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

private CheckBox choose;

private Button send;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

// send.setClickable(false);

}

public void init()

{

choose=(CheckBox) findViewById(R.id.choose);

send=(Button) findViewById(R.id.send);

choose.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

// TODO Auto-generated method stub

if (isChecked) {

//设置checkbox被勾选才能对button进行操作

send.setClickable(isChecked);

//被勾选是按钮颜色进行一个变化

send.setBackgroundColor(Color.parseColor("#00ff00"));

send.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

Toast.makeText(MainActivity.this, "出大事了",1000).show();

}

});

}

else {

///假如没有被勾选的话,按钮的颜色跟被勾选的时候不一样

send.setBackgroundColor(Color.parseColor("#0000ff"));

//并且把button设置为不可被点击

send.setClickable(false);

}

}

});

}

}

大概的操作思路就是这样的了

demo下载地址 http://download.csdn.net/detail/ningzhouxu/9532433
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: