Android从零开始(九)

知识点:Button


核心代码:
package com.zjyb.demo16;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button standard_btn=(Button)findViewById(R.id.standard_btn);
//Android中有很多事件带boolean的返回值
//这类事件有个共同点:绝对不是最后一个被触发的
//任何一个控件或是事件发生,将会触发一个事件链
//比如在Button中会依次触发onTouch-->onTouch-->onClick
//也就是说正常情况下我们点击(触摸)一个按钮,实际上会有三个事件来进行处理
//分别是:按下,离开和点击,其中按下和离开都是属于Touch的两种状态
//返回的boolean值是表示这个事件是否已经处理完毕
//因为大多数时候其实我们不需要三个事件来完成这次触发的动作,也许只要一个就可以了
//后面的调用是多余的,那么我们可以将返回值设置为true,表示事件已经结束
//那么后续的事件方法将不再被调用
//而默认是false,所以会正常完成所有的调用过程

standard_btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Log.v("Tag", "onClick");
}
});
standard_btn.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
Log.v("Tag", "onTouch");
return false;
}
});

standard_btn.setOnLongClickListener(new OnLongClickListener() {

@Override
public boolean onLongClick(View v) {
Log.v("Tag", "onLongClick");
//Toast.makeText(MainActivity.this, "按钮被长按", Toast.LENGTH_SHORT).show();
return false;
}
});

//单选的事件
RadioGroup sex_group=(RadioGroup)findViewById(R.id.sex_group);
sex_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub

RadioButton btn=(RadioButton) findViewById(checkedId);

Toast.makeText(MainActivity.this, "选择了"+btn.getText(), Toast.LENGTH_SHORT).show();
}
});

//多选,选项被钩选或取消钩选时触发
final LinearLayout hobby=(LinearLayout)findViewById(R.id.hobby);
for(int i=0;i<hobby.getChildCount();i++){
CheckBox cb=(CheckBox) hobby.getChildAt(i);
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
//被钩选
Toast.makeText(MainActivity.this, buttonView.getText()+"被钩选", Toast.LENGTH_SHORT).show();
}else{
//被取消
Toast.makeText(MainActivity.this, buttonView.getText()+"被取消钩选", Toast.LENGTH_SHORT).show();
}

}

});
}

//显示所有被钩选的多选项有什么
Button btn=(Button)findViewById(R.id.hobby_btn);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
StringBuffer sb=new StringBuffer();
for(int i=0;i<hobby.getChildCount();i++){
CheckBox ch=((CheckBox)hobby.getChildAt(i));
if(ch.isChecked()){
sb.append(ch.getText());
sb.append(",");
}
}
if(sb.length()!=0){
sb.deleteCharAt(sb.length()-1);
}
Toast.makeText(MainActivity.this, sb.toString(),Toast.LENGTH_LONG).show();
}
});
}


}



源码下载请点这里:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值