您的位置:首页 > 移动开发 > Android开发

Android的基本控件(2)

2016-08-24 21:51 477 查看

基本控件——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;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.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{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (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;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//引入布局
setContentView(R.layout.button_layout);
//找出控件
btn = (Button) findViewById(R.id.btn01);
btn02 = (Button) findViewById(R.id.btn02);

//匿名内部类
//给按钮设置监听
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.e(TAG, "==点击了按钮1==");
}
});

btn02.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.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;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.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);
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (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) f
ba02
indViewById(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() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CheckBox cb = (CheckBox) v;
boolean flag = cb.isChecked();

if(flag){//ture
cbEat.setChecked(true);
cbSleep.setChecked(true);
cbHit.setChecked(true);
}else{
cbEat.setChecked(false);
cbSleep.setChecked(false);
cbHit.setChecked(false);
}
}
});

}

public class MyListner implements OnCheckedChangeListener{

@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub

if(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
*/
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
RadioButton 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() {

//停止拖动
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

Log.e("AAA", "停止");

}

//开始拖动
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
Log.e("AAA", "开始");
}

//正在拖动
/**
* 参数1:seekBar
* 参数2:进度值
* 参数3:是否是用户拖拽的
*
*/
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
Log.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){//ture
ivShow.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){//ture
ivShow.setImageResource(R.drawable.bg1);
}else{
ivShow.setImageResource(R.drawable.bg);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息