1.文本框(EditText)
获取文本:
EditText et=(EditText)findViewByld(R.id.et);
et.getText(.toString())
2.按钮(Button)
常配合事件监听器使用
Button button= (Button) findViewById(R.id.button1); //通过ID获取布局按钮
//为按钮添加单击事件监听器
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"您已授权登录开心消消乐",Toast.LENGTH_SHORT).show();
}
});
3.单选按钮(RadioButton)
获取所选按钮的文本
1.xml中定义单选按钮组RadioGroup
2.常在一个循环中判断是否选中该按钮
for(int i = 0;i<rg.getChildCount();i++)
3.创建并实例单选按钮
RadioButton radioButton = (RadioButton)rg.getChildAt(i);
4.检查该按钮是否被选中
if(radioButton.isChecked())
实例
import android.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button bt;
RadioGroup rg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = (Button)findViewById(R.id.bt);
rg = (RadioGroup)findViewById(R.id.rg);
bt.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
for(int i = 0;i<rg.getChildCount();i++){
RadioButton radioButton = (RadioButton)rg.getChildAt(i);
if(radioButton.isChecked()){
if(radioButton.getText().equals("B:100")){
Toast.makeText(MainActivity.this,"回答正确",Toast.LENGTH_LONG).show();
}else{
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("回答错误,下面请看解析:当张山换完零钱之后," +
"给了顾客75还有价值25元的商品,自己还剩下了25元。这时," +
"李石来找张山要钱,张山把自己剩下的相当于是李石的25元给了李石," +
"另外自己掏了75元。这样张山赔了一个25元的商品和75元的人民币," +
"总共价值100元。");
builder.setPositiveButton("确定",null).show();
}
break;
}
}
}
}
);
}
}
4.复选框(CheckBox)
获取选中复选框的文本
复选框可以单个新建并操作
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button btn_login; //定义登录按钮
CheckBox checkBox1, checkBox2, checkBox3; //定义复选框
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_login = (Button) findViewById(R.id.btn_login); //通过ID获取布局确认登录按钮
checkBox1 = (CheckBox) findViewById(R.id.checkbox1); //通过ID获取布局复选框1
checkBox2 = (CheckBox) findViewById(R.id.checkbox2); //通过ID获取布局复选框2
checkBox3 = (CheckBox) findViewById(R.id.checkbox3); //通过ID获取布局复选框3
btn_login.setOnClickListener(new View.OnClickListener() { //为确认登录按钮
@Override
public void onClick(View v) {
String checked = ""; //保存选中的值
if (checkBox1.isChecked()) { //当第一个复选框被选中
checked += checkBox1.getText().toString() ; //输出第一个复选框内信息
}
if (checkBox2.isChecked()) { //当第二个复选框被选中
checked += checkBox2.getText().toString() ; //输出第二个复选框内信息
}
if (checkBox3.isChecked()) { //当第三个复选框被选中
checked += checkBox3.getText().toString() ; //输出第三个复选框内信息
}
//显示被选中复选框对应的信息
Toast.makeText(MainActivity.this, checked, Toast.LENGTH_LONG).show();
}
});
}
}
5.日期选择器
1.定义年月日和日期选择器
2.实例化日历
Calendar calendar=Calendar.getInstance();
3.获取当前年月日
year=calendar.get(Calendar.YEAR); //获取当前年
month=calendar.get(Calendar.MONTH); //获取当前月
day=calendar.get(Calendar.DAY_OF_MONTH); //获取当前日
4.初始化日期选择器
实例
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.Toast;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
int year,month,day; //定义年,月,日
DatePicker datePicker; //定义日期选择器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datePicker= (DatePicker) findViewById(R.id.datePicker); //通过ID获取布局日期选择器
Calendar calendar=Calendar.getInstance();
year=calendar.get(Calendar.YEAR); //获取当前年
month=calendar.get(Calendar.MONTH); //获取当前月
day=calendar.get(Calendar.DAY_OF_MONTH); //获取当前日
//初始化日期选择器,并且在初始化时指定监听器
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
MainActivity.this.year=year; //改变年的参数
MainActivity.this.month=monthOfYear; //改变月的参数
MainActivity.this.day=dayOfMonth; //改变日的参数
show(year,monthOfYear,dayOfMonth); //通过消息框显示日期
}
});
}
private void show(int year, int monthOfYear, int dayOfMonth) {
String str=year+"年"+monthOfYear+1+"月"+dayOfMonth+"日"; //获取选择器设置的日期
Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show(); //将选择的日期显示出来
}
}
6.时间选择器
同上
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
TimePicker timePicker; //定义时间选择器
int hour,minute; //定义小时和分
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timePicker= (TimePicker) findViewById(R.id.timePicker); //通过ID获取布局时间选择器
timePicker.setIs24HourView(true); //设置时间为24小时制
Calendar calendar=Calendar.getInstance();
hour=calendar.get(Calendar.HOUR_OF_DAY); //获取当前小时
minute=calendar.get(Calendar.MINUTE); //获取当前分钟
//为时间选择器设置监听器
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
MainActivity.this.hour=hourOfDay; //改变小时后的参数
MainActivity.this.minute=minute; //改变分钟后的参数
show(hourOfDay,minute); //通过消息框显示选择的时间
}
private void show(int hourOfDay, int minute) {
String str=hourOfDay+"时"+minute+"分"; //获取选择器设置的时间
Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();//显示消息提示框
}
});
}
}
7.计时器
1.定义计时器并获取组件
2.设置起始时间
ch.setBase(SystemClock.elapsedRealtime());
括号内方法一般从0开始
3.设置格式
ch.setFormat("%s");
这样就为时分秒格式
4.开始计时
ch.start();
5.添加监听器
ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
//判断时间计时达到60秒时
if (SystemClock.elapsedRealtime() - ch.getBase() >= 60000) {
ch.stop(); //停止计时器
}
}
}
import android.app.Activity;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.Chronometer;
public class MainActivity extends Activity {
Chronometer ch; //定义计时器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN); //设置全屏显示
ch = (Chronometer) findViewById(R.id.ch); //获取计时器组件
ch.setBase(SystemClock.elapsedRealtime()); //设置起始时间
ch.setFormat("%s"); //设置显示时间格式为时分秒
ch.start(); //开启计时器
//添加监听器
ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
//判断时间计时达到60秒时
if (SystemClock.elapsedRealtime() - ch.getBase() >= 60000) {
ch.stop(); //停止计时器
}
}
});
}
}
8.进度条
1.创建获取组件
horizonP = (ProgressBar) findViewById(R.id.progressBar1);
2.更新进度
horizonP.setProgress(mProgressStatus);
括号内是一个int型
3.进度条不显示
horizonP.setVisibility(View.GONE);
xml内属性:
style:进度条样式
android:max 最大进度
android:progress 初始进度
9.拖动条
1.创建获取组件
seekBar = (SeekBar) findViewById(R.id.seekbar);
2.设置监听器
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {}
3.当拖动条改变时
public void onProgressChanged(SeekBar arg0, int progress,
boolean fromUser) {}
实例
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.SeekBar;
public class MainActivity extends AppCompatActivity {
private ImageView image; //定义图片
private SeekBar seekBar; //定义拖动条
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView) findViewById(R.id.image); //获取图片
seekBar = (SeekBar) findViewById(R.id.seekbar); //获取拖动条
//为拖动条设置监听事件
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
// 当拖动条的滑块位置发生改变时触发该方法
@Override
public void onProgressChanged(SeekBar arg0, int progress,
boolean fromUser) {
// 动态改变图片的透明度
image.setImageAlpha(progress);
}
@Override
public void onStartTrackingTouch(SeekBar bar) {
}
@Override
public void onStopTrackingTouch(SeekBar bar) {
}
});
}
}
10.星级条
1.创建并获取组件
2.获取等级
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.Toast;
public class MainActivity extends Activity {
private RatingBar ratingbar; //星级评分条
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ratingbar = (RatingBar) findViewById(R.id.ratingBar1); //获取星级评分条
Button button=(Button)findViewById(R.id.btn); //获取“提交”按钮
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int result = ratingbar.getProgress(); //获取进度
float rating = ratingbar.getRating(); //获取等级
float step = ratingbar.getStepSize(); //获取每次最少要改变多少个星级
Log.i("星级评分条","step="+step+" result="+result+" rating="+rating);
Toast.makeText(MainActivity.this, "你得到了" + rating + "颗星", Toast.LENGTH_SHORT).show();
}
});
}
}
xml内属性:
android:numStars:显示多少个星星,必须为整数
android:rating:默认评分值,必须为浮点数
android:stepSize: 评分每次增加的值,必须为浮点数
style:样式