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); } } }
相关文章推荐
- [转载]Activity中ConfigChanges属性的用法
- android之定时器AlarmManager
- android上改变listView的选中颜色
- Flex4 DataGrid中嵌入RadioButton实现思路及代码
- jQuery根据ID获取input、checkbox、radio、select的示例
- jquery实现的代替传统checkbox样式插件
- C#获取动态生成的CheckBox值
- C#遍历得到checkboxlist选中值和设置选中项的代码
- c# 如何将RadioButton与DataTable数据进行绑定
- Winform消除button按下出现的虚线简单实现方法
- Android编程之Button控件用法实例分析
- Android控件之CheckBox、RadioButton用法实例分析
- Android控件之ProgressBar用法实例分析
- ASP.NET中 CheckBox复选框控件的使用
- 在ASP.NET 2.0中操作数据之四十五:DataList和Repeater里的自定义Button
- 在ASP.NET 2.0中操作数据之五十:为GridView控件添加Checkbox
- ASP.NET 中 Button、LinkButton和ImageButton 三种控件的使用详解
- asp.net动态产生checkbox(数据源为DB或内存集合)
- asp.net gridview中用checkbox全选的几种实现的区别