知识点: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();
}
});
}
}
源码下载请点这里: