Android的基本控件(2)

来源:互联网 发布:2014网络流行语 编辑:程序博客网 时间:2024/05/19 05:38

基本控件——Button

一、父类:TextView

二、概念:可以被按,点击 并且执行一个动作

三、属性:

 在按钮内部的上下左右设置图片:
 android:drawableTop="@drawable/ic_launcher"
 android:drawableBottom="@android:drawable/editbox_background_normal"
 android:drawableLeft="@android:drawable/ic_dialog_alert"
 android:drawableRight="@android:drawable/ic_menu_call"    
 android:background="@null"去掉背景颜色
 android:background="@android:color/transparent" 设置背景颜色为透明

四、监听:控件数量少  用一和二    控件数量多  用三和四

第一种实现:使用的是成员内部类  
第二种实现方式:匿名内部类
第三种实现方式 :类实现OnclickListner
第四种实现方法: * 布局文件中xml中添加点击事件 Onclick属性
 * 1,方法必须是public
 * 2,返回值必须是void
 * 3,必须和xml中Onclick里属性名一致
 * 4,必须有View参数

五、 四种监听的使用

        第一种实现方式

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class ButtonActivity extends Activity{private Button btn,btn02;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);//引入布局setContentView(R.layout.button_layout);//找出控件btn = (Button) findViewById(R.id.btn01);btn02 = (Button) findViewById(R.id.btn02);//得到监听器对象MyListner myListner = new MyListner();//给按钮设置监听btn.setOnClickListener(myListner);btn02.setOnClickListener(myListner);}/** * 成员内部类 * @author sxy * */public class MyListner implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.btn01:Toast.makeText(ButtonActivity.this, "Register", Toast.LENGTH_SHORT).show();break;case R.id.btn02:Toast.makeText(ButtonActivity.this, "Login", Toast.LENGTH_SHORT).show();break;<pre name="code" class="java">

第二种实现方式

import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class Button01Activity extends Activity{//静态标记private static final String TAG = "Button01Activity";private Button btn,btn02;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);//引入布局setContentView(R.layout.button_layout);//找出控件btn = (Button) findViewById(R.id.btn01);btn02 = (Button) findViewById(R.id.btn02);//匿名内部类//给按钮设置监听btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubLog.e(TAG, "==点击了按钮1==");}});btn02.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubLog.e(TAG, "=******=点击了按钮2=*****=");}});}}


第三种实现方式 

import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;/** * 类实现 OnClickListener * @author sxy * */public class Button02Activity extends Activity implements OnClickListener{//静态标记private static final String TAG = "Button01Activity";private Button btn,btn02;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);//引入布局setContentView(R.layout.button_layout);//找出控件btn = (Button) findViewById(R.id.btn01);btn02 = (Button) findViewById(R.id.btn02);//设置监听btn.setOnClickListener(this);btn02.setOnClickListener(this);}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.btn01:Toast.makeText(Button02Activity.this, "注册成功", Toast.LENGTH_SHORT).show();break;case R.id.btn02:Toast.makeText(Button02Activity.this, "登录成功", Toast.LENGTH_SHORT).show();break;default:break;}}}



第四种实现方式

import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.widget.Toast;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    /**     * 布局文件中xml中添加点击事件 Onclick属性     * 1,方法必须是public     * 2,返回值必须是void     * 3,必须和xml中Onclick里属性名一致     * 4,必须有View参数     * @param v     */    public void MyClick(View v){        Toast.makeText(MainActivity.this, "Hello World", Toast.LENGTH_SHORT).show();        }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    }


基本控件——CheckBox


一、概念:可以从一个集合选项中选择一个或者多个选项

二、属性:checked   选择状态

三、使用:  

方式一:使用onclickListner 监听事件(点击事件)
方式二:使用OnCheckedChangeListener (CompleButton)  状态改变的监听  

       【注】如果有全选的:全选的按钮的监听必须用onclickListner 监听事件


例题:

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.CheckBox;import android.widget.Toast;public class MainActivity extends Activity {private CheckBox cbEat,cbSleep,cbHit;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                cbEat = (CheckBox) findViewById(R.id.cb_eat);        cbSleep = (CheckBox) findViewById(R.id.cb_sleep);        cbHit = (CheckBox) findViewById(R.id.cb_hit);                    }    //点击的监听事件    onclickListner    public void Onclick(View v){    //获取当前点击checkBox的状态    CheckBox cb =  (CheckBox) v;    boolean flag = cb.isChecked();        switch (v.getId()) {case R.id.cb_eat:if(flag){//ture  选择Toast.makeText(MainActivity.this, "您选择了吃饭", Toast.LENGTH_SHORT).show();}else{//没有选择Toast.makeText(MainActivity.this, "您没选择吃饭", Toast.LENGTH_SHORT).show();}break;case R.id.cb_sleep:if(flag){//ture  选择Toast.makeText(MainActivity.this, "您选择了睡觉", Toast.LENGTH_SHORT).show();}else{//没有选择Toast.makeText(MainActivity.this, "您没选择睡觉", Toast.LENGTH_SHORT).show();}break;case R.id.cb_hit:if(flag){//ture  选择Toast.makeText(MainActivity.this, "您选择了打斗", Toast.LENGTH_SHORT).show();}else{//没有选择Toast.makeText(MainActivity.this, "您没选择了打斗", Toast.LENGTH_SHORT).show();}break;default:break;}        }       }

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;public class SecondActivity extends Activity {private CheckBox cbEat,cbSleep,cbHit,cbAll;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                cbEat = (CheckBox) findViewById(R.id.cb_eat);        cbSleep = (CheckBox) findViewById(R.id.cb_sleep);        cbHit = (CheckBox) findViewById(R.id.cb_hit);        cbAll = (CheckBox) findViewById(R.id.cb_all);                //获取监听对象        MyListner myListner = new MyListner();                //设置checkBox状态是否改变的监听        cbEat.setOnCheckedChangeListener(myListner);        cbSleep.setOnCheckedChangeListener(myListner);        cbHit.setOnCheckedChangeListener(myListner);//      XXXX  cbAll.setOnCheckedChangeListener(myListner);XXXXX                //做全选  用点击事件        cbAll.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubCheckBox cb = (CheckBox) v;boolean flag = cb.isChecked();if(flag){//turecbEat.setChecked(true);cbSleep.setChecked(true);cbHit.setChecked(true);}else{cbEat.setChecked(false);cbSleep.setChecked(false);cbHit.setChecked(false);}}});                    }        public class MyListner implements OnCheckedChangeListener{@Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {// TODO Auto-generated method stubif(cbEat.isChecked()&&cbSleep.isChecked()&&cbHit.isChecked()){cbAll.setChecked(true);}else{cbAll.setChecked(false);}}        }    }

基本控件——RadioButton

一、概念:单选框   从多个互斥选项中选择一个  如果是选项全部展开  RadioButton  不是展开的Spinner(下拉列表)

二、属性: android:checked="true" 默认选择的项

三、使用方法:

    使用RadioButton要用RadioGroup进行分组 RadioGroup是LinearLayout的子类  可以控制方向
    方式一:使用onclickListner 监听事件(点击事件)
    方式二:****使用OnCheckedChangeListener (RadioGroup)  状态改变的监听 *****


例题:

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.Toast;public class MainActivity extends Activity {private RadioGroup rg;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                rg = (RadioGroup) findViewById(R.id.rg);                //状态改变的监听android.widget.RadioGroup        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {/** * 参数1:点击的RadioButton的分组 * 参数2:选择控件的Id */@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {// TODO Auto-generated method stubRadioButton rb = (RadioButton) findViewById(checkedId);Toast.makeText(MainActivity.this, "======"+rb.getText().toString(), Toast.LENGTH_SHORT).show();}});    }}




基本控件——ProgressBar (进度条)

属性:

        style="?android:attr/progressBarStyleSmall" 样式
        android:progress="40"   第一进度
        android:secondaryProgress="50"  第二进度

基本控件——SeekBar(音频播放拖拽进度条) 

属性:

     android:progress="40"   第一进度
     android:secondaryProgress="50"  第二进度
     使用: setOnSeekBarChangeListener


例题:(ProgressBar ,SeekBar  )

import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.widget.ProgressBar;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;public class MainActivity extends Activity {private ProgressBar progressBar;private SeekBar seekbar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                progressBar = (ProgressBar) findViewById(R.id.progressBar);        seekbar = (SeekBar) findViewById(R.id.seekbar);        //进度条        progressBar.setProgress(60);        progressBar.setSecondaryProgress(70);        //seekbar        seekbar.setProgress(60);        seekbar.setSecondaryProgress(70);                //seekbar进度改变的监听        seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {        //停止拖动@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubLog.e("AAA", "停止");}//开始拖动@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubLog.e("AAA", "开始");}//正在拖动/** * 参数1:seekBar * 参数2:进度值 * 参数3:是否是用户拖拽的 *  */@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {// TODO Auto-generated method stubLog.e("AAA", "正在拖拽"+fromUser);}});    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    }

基本控件——ToggleButton  开关按钮(4.0之前)

基本控件——Switch   开关按钮(4.0之后) 

例题:

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import android.widget.Switch;import android.widget.ToggleButton;public class MainActivity extends Activity {private ImageView ivShow;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                ivShow = (ImageView) findViewById(R.id.iv_show);    }        //switch的开关    public void Click(View v){        Switch switch1 = (Switch) v;    boolean flag = switch1.isChecked();    if(flag){//tureivShow.setImageResource(R.drawable.bg1);}else{ivShow.setImageResource(R.drawable.bg);}    }    //ToggleButton开关的监听事件public void MyOnclick(View v){ToggleButton toggleButton = (ToggleButton) v;boolean flag = toggleButton.isChecked();if(flag){//tureivShow.setImageResource(R.drawable.bg1);}else{ivShow.setImageResource(R.drawable.bg);}}}





0 0
原创粉丝点击