常用控件

  1. Spinner

  2. DatePickerDialog

  3. TimePickerDiaog

  4. RadioButton

  5. CheckBox

spinner(下拉菜单)

  1. <Spinner
  2. android:id="@+id/spinner"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content" />
  1. public class MainActivity extends AppCompatActivity {
  2.  
  3. private Spinner s;
  4. private String[] dataSource = new String[]{"a1","b2","c3"};
  5.  
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10.  
  11. s = (Spinner) findViewById(R.id.spinner);
  12. //设置一个Adapter
  13. s.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataSource));
  14.      //sOnSe OnIt
  15. s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  16. @Override
  17. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  18. //在这里写监听事件
                System.out.println("用户选择的是"+dataSource[position]);
  19. }
  20.  
  21. @Override
  22. public void onNothingSelected(AdapterView<?> parent) {
  23.           //不写
  24. }
  25. });
  26. }
  27. }

DatePickerDialog(日期选择器)

  1. <Button
  2. android:id="@+id/button"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:text="选择日期" />
  1. public class ChooseDate extends AppCompatActivity {
  2.  
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_choose_date);
  7. slove();
  8. }
  9.  
  10. public void slove() {
  11. findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
  12. @Override
  13. public void onClick(View v) {
  14. new DatePickerDialog(ChooseDate.this, new DatePickerDialog.OnDateSetListener() {
  15. @Override
  16. public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
  17. String chooseDate = String.format("%04d-%02d-%02d",year,month+1,dayOfMonth);//"%04d"总长度4位,不够用0补齐
  18. ((Button) findViewById(R.id.button)).setText(chooseDate);
  19. }
  20. },2000,0,1).show();//要注意月份是从0~11
  21. }
  22. });
  23. }
  24. }

TimePickerDialog(时间选择器)

这个就和日期选择器很像了

  1. <Button
  2. android:id="@+id/button"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:text="选择时间" />
  1. public class ChooseTime extends AppCompatActivity {
  2.  
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_choose_date);
  7. slove();
  8. }
  9.  
  10. public void slove() {
  11. findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
  12. @Override
  13. public void onClick(View v) {
  14. new TimePickerDialog(ChooseTime.this, new TimePickerDialog.OnTimeSetListener() {
  15. @Override
  16. public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
  17. String chooseTime = String.format("%02d:%02d",hourOfDay,minute);
  18. ((Button) findViewById(R.id.button)).setText(chooseTime);
  19. }
  20. },0,0,true).show();//True是否使用24小时制
  21. }
  22. });
  23. }
  24. }

RadioButton(单选框)

这个要注意的是,单选按钮不能单独存在,要放在RadioGroup里

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. <LinearLayout
  7. android:layout_width="match_parent"
  8. android:layout_height="wrap_content"
  9. android:orientation="vertical"
  10. android:layout_weight="1">
  11.  
  12. <TextView
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content"
  15. android:layout_marginBottom="10dp"
  16. android:textSize="18sp"
  17. android:text="世界上最大的海洋是?"/>
  18.  
  19. <RadioGroup
  20. android:layout_width="match_parent"
  21. android:layout_height="wrap_content" >
  22.  
  23. <RadioButton
  24. android:id="@+id/rbA"
  25. android:layout_width="match_parent"
  26. android:layout_height="wrap_content"
  27. android:textSize="16sp"
  28. android:text="A.太平洋" />
  29.  
  30. <RadioButton
  31. android:id="@+id/rbB"
  32. android:layout_width="match_parent"
  33. android:layout_height="wrap_content"
  34. android:textSize="16sp"
  35. android:text="B.北冰洋" />
  36. </RadioGroup>
  37.  
  38. </LinearLayout>
  39.  
  40. <Button
  41. android:id="@+id/chooseOne"
  42. android:layout_width="match_parent"
  43. android:layout_height="wrap_content"
  44. android:text="提交"/>
  45.  
  46. </LinearLayout>
  1. public class ChooseSingle extends AppCompatActivity {
  2.  
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_choose_single);
  7. slove();
  8. }
  9.  
  10. private void slove() {
  11. findViewById(R.id.chooseOne).setOnClickListener(new View.OnClickListener() {
  12. @Override
  13. public void onClick(View v) {
  14. RadioButton rb = (RadioButton) findViewById(R.id.rbA);
  15. if(rb.isChecked()) {
  16. Toast.makeText(ChooseSingle.this, "正确", Toast.LENGTH_SHORT).show();
  17. }
  18. else {
  19. Toast.makeText(ChooseSingle.this, "错误", Toast.LENGTH_SHORT).show();
  20. }
  21. }
  22. });
  23. }
  24. }

CheckBox(多选框)

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6.  
  7. <TextView
  8. android:id="@+id/tv1"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:text="你喜欢喝什么饮料?" />
  12.  
  13. <CheckBox
  14. android:id="@+id/cb1"
  15. android:layout_width="match_parent"
  16. android:layout_height="wrap_content"
  17. android:text="冰峰" />
  18.  
  19. <CheckBox
  20. android:id="@+id/cb2"
  21. android:layout_width="match_parent"
  22. android:layout_height="wrap_content"
  23. android:text="果啤" />
  24.  
  25. <CheckBox
  26. android:id="@+id/cb3"
  27. android:layout_width="match_parent"
  28. android:layout_height="wrap_content"
  29. android:text="雪碧" />
  30.  
  31. <TextView
  32. android:id="@+id/tv2"
  33. android:layout_width="match_parent"
  34. android:layout_height="wrap_content" />
  35. </LinearLayout>
  1. package com.liwenchi.myapplication;
  2.  
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.widget.CheckBox;
  7. import android.widget.CompoundButton;
  8. import android.widget.TextView;
  9.  
  10. public class MainActivity extends AppCompatActivity {
  11.  
  12. private CheckBox cb1,cb2,cb3;
  13. private TextView tv;
  14.  
  15. @Override
  16. protected void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.activity_main);
  19. slove();
  20. }
  21.  
  22. public void slove() {
  23. cb1 = (CheckBox) findViewById(R.id.cb1);
  24. cb2 = (CheckBox) findViewById(R.id.cb2);
  25. cb3 = (CheckBox) findViewById(R.id.cb3);
  26. tv = (TextView) findViewById(R.id.tv2);
  27. cb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  28. @Override
  29. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  30. onChanged();
  31. }
  32. });
  33. cb2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  34. @Override
  35. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  36. onChanged();
  37. }
  38. });
  39. cb3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  40. @Override
  41. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  42. onChanged();
  43. }
  44. });
  45. }
  46.  
  47. public void onChanged() {
  48. String s = "我喜欢";
  49. if(cb1.isChecked()) {
  50. s += ","+cb1.getText();
  51. }
  52. if(cb2.isChecked()) {
  53. s += ","+cb2.getText();
  54. }
  55. if(cb3.isChecked()) {
  56. s += ","+cb3.getText();
  57. }
  58. tv.setText(s);
  59. }
  60. }

[2017-7-28]Android Learning Day6的更多相关文章

  1. 团队作业4——第一次项目冲刺(Alpha版本)2017.4.28

    2017.04.28 天气晴朗 东风3级. 时间:上午 9:35 ---10:10分 地点:陆大二楼 会议内容:实验室报修系统项目冲刺Alpha版的的最后一天,大家对现在项目的进程进行了讨论,阐述了各 ...

  2. LOJ #6074. 「2017 山东一轮集训 Day6」子序列

    #6074. 「2017 山东一轮集训 Day6」子序列 链接 分析: 首先设f[i][j]为到第i个点,结尾字符是j的方案数,这个j一定是从i往前走,第一个出现的j,因为这个j可以代替掉前面所有j. ...

  3. [2017-8-02]Android Learning Day8

    自定义动画效果 新建一个customAnim类 package com.liwenchi.myapplication; import android.view.animation.Animation; ...

  4. [2017-7-26]Android Learning Day4

    RecycleView 恩,学习Fragment的过程中的一个小实践居然用到了RecycleView!坑了我好久有木有!!好气哦,从昨晚到现在.(现在也还是一头雾水,不过照搬也会用了) 这是第一版的代 ...

  5. Android Learning:微信第三方登录

    这两天,解决了微信第三方授权登录的问题,作为一个新手,想想也是一把辛酸泪.我想着,就把我的遇到的坑给大家分享一下,避免新手遇到我这样的问题能够顺利避开. 步骤一 微信开发者平台 我开始的解决思路是,去 ...

  6. Android Learning:多线程与异步消息处理机制

    在最近学习Android项目源码的过程中,遇到了很多多线程以及异步消息处理的机制.由于之前对这块的知识只是浅尝辄止,并没有系统的理解.但是工程中反复出现让我意识到这个知识的重要性.所以我整理出这篇博客 ...

  7. Android Learning:数据存储方案归纳与总结

    前言 最近在学习<第一行android代码>和<疯狂android讲义>,我的感触是Android应用的本质其实就是数据的处理,包括数据的接收,存储,处理以及显示,我想针对这几 ...

  8. [2017-7-28]Android Learning Day7

    View动画效果 透明动画效果 旋转动画效果 移动动画效果 缩放动画效果 混合动画效果 1.透明动画效果(AlphaAnimation) 有两种方法 第一种在活动中设置,不需要xml文件 public ...

  9. [2017-7-27]Android Learning Day5

    总结篇! 吭哧吭哧了三天,最近不断研究<第一行代码:第二版>170多页的那个新闻实践项目,虽然也没有用到数据库和一些Web爬虫的知识,新闻数据都是随机生成的字符串...... 但还是很开心 ...

随机推荐

  1. js 通过url获取里面的参数值

    场景描述:当我们从一个页面要带有一两个值跳转到另一个页面,另一个页面要使用这些参数的时候,我们就需要通过js获取这些参数啦. 先贴上代码: function getQueryString(name) ...

  2. Vue+min-width实现最大两栏布局

    <style> .fitting-Modal-details{ overflow: hidden; } .detailsContent{ float: left; min-width: 5 ...

  3. macbookpro 以及 surface 的技术规格

    macbookpro 13.3 英寸 (对角线) LED 背光显示屏 (采用 IPS 技术):初始分辨率 x ( ppi),支持数百万色彩 15.4 英寸 (对角线) LED 背光显示屏 (采用 IP ...

  4. 本地数据访问时出现跨域问题Cross origin requests are only supported for protocol schemes: ……

    从桌面找到Chrome图标,右键属性,快捷方式,起始位置(安装路径) 注:在cmd中访问Program Files文件的方法 %ProgramFiles%=C:\Program Files %Prog ...

  5. Hadoop2.0 Namenode HA实现方案

    Hadoop2.0 Namenode HA实现方案介绍及汇总 基于社区最新release的Hadoop2.2.0版本,调研了hadoop HA方面的内容.hadoop2.0主要的新特性(Hadoop2 ...

  6. git format-patch制作内核补丁

    git init git add ./ git commit 之后修改代码 修改代码后执行 git add ./ git commit 执行完成后执行git log查询commit 的id 执行git ...

  7. python学习笔记(5-1)-基本数据类型-字符串类型及操作

    五.字符串处理函数  len(x):字符串x的长度.如len("12345")结果为5  str(x):任意类型x所对应的字符串形式. >>> str(123) ...

  8. 集合之HashSet(含JDK1.8源码分析)

    一.前言 我们已经分析了List接口下的ArrayList和LinkedList,以及Map接口下的HashMap.LinkedHashMap.TreeMap,接下来看的是Set接口下HashSet和 ...

  9. Bootstrap之信息记录

    Bootstrap中文网: http://www.bootcss.com/ 上面有一些资料和范例 实例精选: https://v3.bootcss.com/getting-started/#examp ...

  10. Appium之开发计算器自动化测试脚本Demo

    1.依赖包 <!-- https://mvnrepository.com/artifact/io.appium/java-client --> <dependency> < ...