Android基础:组件

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:样式

猜你喜欢

转载自blog.csdn.net/qq_37282683/article/details/86521756