tnblog
首页
视频
资源
登录

渣渣学安卓之时间选择器和文本框操作

7463人阅读 2019/2/28 20:25 总访问:186370 评论:1 收藏:0 手机
分类: android

一、时间选择器


有时候我们做页面时需要时间选择器,先上效果图



看了下android studio,没有这个样式的控件,找了下度娘发现这个样式的控件需要用TextView+后台代码实现。


假设新建页面 sheqing_list:


activity_sheqing_list.xml 布局页:


  1.  <LinearLayout
  2.         android:layout_width="match_parent"
  3.         android:layout_height="match_parent"
  4.         android:orientation="vertical">
  5.         <TextView
  6.             android:id="@+id/textView2"
  7.             android:layout_width="match_parent"
  8.             android:layout_height="wrap_content"
  9.             android:layout_marginLeft="10dp"
  10.             android:layout_marginTop="20dp"
  11.             android:layout_marginRight="10dp"
  12.             android:layout_marginBottom="10dp"
  13.             android:text="请选择开始结束时间:" />
  14.         <LinearLayout
  15.             android:layout_width="match_parent"
  16.             android:layout_height="40dp"
  17.             android:orientation="horizontal">
  18.             <LinearLayout
  19.                 android:layout_width="120dp"
  20.                 android:layout_height="match_parent"
  21.                 android:layout_marginLeft="20dp"
  22.                 android:orientation="vertical">
  23.                 <TextView
  24.                     android:id="@+id/btnbegin"
  25.                     android:layout_width="120dp"
  26.                     android:layout_height="wrap_content"
  27.                     android:background="@android:drawable/edit_text"
  28.                     android:text="2018-01-01"
  29.                     android:textColor="@android:color/black" />
  30.             </LinearLayout>
  31.             <LinearLayout
  32.                 android:layout_width="120dp"
  33.                 android:layout_height="match_parent"
  34.                 android:orientation="vertical">
  35.                 <TextView
  36.                     android:id="@+id/btnover"
  37.                     android:layout_width="120dp"
  38.                     android:layout_height="wrap_content"
  39.                     android:background="@android:drawable/edit_text"
  40.                     android:text="2019-12-31"
  41.                     android:textColor="@android:color/black" />
  42.             </LinearLayout>
  43.             <LinearLayout
  44.                 android:layout_width="100dp"
  45.                 android:layout_height="match_parent"
  46.                 android:orientation="vertical">
  47.                 <Button
  48.                     android:id="@+id/btnselect"
  49.                     style="@style/Widget.AppCompat.Button.Colored"
  50.                     android:layout_width="80dp"
  51.                     android:layout_height="wrap_content"
  52.                     android:text="查询" />
  53.             </LinearLayout>
  54.         </LinearLayout>
  55.   </LinearLayout>

 

sheqing_list.java页面:


  1. package xyz.ecoo.www.imagecarouseldemo;
  2. import android.app.Activity;
  3. import android.app.DatePickerDialog;
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.DatePicker;
  9. import android.widget.TextView;
  10. import java.util.Calendar;
  11. public class sheqing_list extends Activity implements View.OnClickListener {
  12.     private TextView btnbegin;
  13.     private TextView btnover;
  14.     private Calendar cal;
  15.     private int year,month,day;
  16.     @Override
  17.     protected void onCreate(Bundle savedInstanceState) {
  18.         super.onCreate(savedInstanceState);
  19.         setContentView(R.layout.activity_sheqing_list);
  20.         //获取当前日期  开始
  21.         getbeginDate();
  22.         btnbegin=(TextView) findViewById(R.id.btnbegin);
  23.         btnbegin.setOnClickListener(this);
  24.         //获取当前日期  结束
  25.         getoverDate();
  26.         btnover=(TextView) findViewById(R.id.btnover);
  27.         btnover.setOnClickListener(this);
  28.     }
  29.     //获取当前日期  开始
  30.     private void getbeginDate() {
  31.         cal=Calendar.getInstance();
  32.         year=cal.get(Calendar.YEAR);       //获取年月日时分秒
  33.         month=cal.get(Calendar.MONTH);   //获取到的月份是从0开始计数
  34.         day=cal.get(Calendar.DAY_OF_MONTH);
  35.     }
  36.     //获取当前日期  结束
  37.     private void getoverDate() {
  38.         cal=Calendar.getInstance();
  39.         year=cal.get(Calendar.YEAR);       //获取年月日时分秒
  40.         month=cal.get(Calendar.MONTH);   //获取到的月份是从0开始计数
  41.         day=cal.get(Calendar.DAY_OF_MONTH);
  42.     }
  43.     //开始按钮
  44.     @Override
  45.     public void onClick(View view) {
  46.         switch (view.getId()) {
  47.             case R.id.btnbegin:
  48.                 DatePickerDialog.OnDateSetListener listener=new DatePickerDialog.OnDateSetListener() {
  49.                     @Override
  50.                     public void onDateSet(DatePicker arg0, int year, int month, int day) {
  51.                         btnbegin.setText(year+"-"+(++month)+"-"+day);      //将选择的日期显示到TextView中,因为之前获取month直接使用,所以不需要+1,这个地方需要显示,所以+1
  52.                     }
  53.                 };
  54.                 DatePickerDialog dialog=new DatePickerDialog(sheqing_list.this, DatePickerDialog.THEME_HOLO_LIGHT,listener,year,month,day);//主题在这里!后边三个参数为显示dialog时默认的日期,月份从0开始,0-11对应1-12个月
  55.                 dialog.show();
  56.                 break;
  57.             case R.id.btnover:
  58.                 DatePickerDialog.OnDateSetListener listener1=new DatePickerDialog.OnDateSetListener() {
  59.                     @Override
  60.                     public void onDateSet(DatePicker arg0, int year, int month, int day) {
  61.                         btnover.setText(year+"-"+(++month)+"-"+day);      //将选择的日期显示到TextView中,因为之前获取month直接使用,所以不需要+1,这个地方需要显示,所以+1
  62.                     }
  63.                 };
  64.                 DatePickerDialog dialog1=new DatePickerDialog(sheqing_list.this, DatePickerDialog.THEME_HOLO_LIGHT,listener1,year,month,day);//主题在这里!后边三个参数为显示dialog时默认的日期,月份从0开始,0-11对应1-12个月
  65.                 dialog1.show();
  66.                 break;
  67.             default:
  68.                 break;
  69.         }
  70.     }
  71. }


效果即可实现。


二、文本框


开始找文本框,没找到,都是单个的线条,后来搜了一下发现原来是用TextView实现。同样先上效果图:




此效果直接在xml中操作就好。


  1. <LinearLayout
  2.                 android:layout_width="110dp"
  3.                 android:layout_height="match_parent"
  4.                 android:orientation="vertical">
  5.                 <TextView
  6.                     android:id="@+id/textView20"
  7.                     android:layout_width="match_parent"
  8.                     android:layout_height="match_parent"
  9.                     android:background="@android:drawable/edit_text"
  10.                     android:gravity="center_horizontal"
  11.                     android:text="反映" />
  12.             </LinearLayout>


其实只用加一句代码 即可


  1. android:background="@android:drawable/edit_text"


最后再啰嗦一句:横线的实现


在html中一条线 直接<br/>搞定,android studio 中用View框实现,代码如下:

  1. <View
  2.                 android:id="@+id/view1"
  3.                 android:layout_width="fill_parent"
  4.                 android:layout_height="1dp"
  5.                 android:layout_marginLeft="5dp"
  6.                 android:layout_marginTop="10dp"
  7.                 android:layout_marginRight="5dp"
  8.                 android:background="#aa000000" />

这样一条线就出来了。


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

小可爱

2019/2/28 20:56:22

666666横线的方式和我想法完全一样

真正的顺其自然,其实是竭尽所能之后的不强求,而非两手一摊的不作为
排名
19
文章
24
粉丝
11
评论
15
css实现简单矩形对话框
剑轩 : 现在来看一下,这个正好用到
三分钟快速复习MVC知识
瑾语 : 棒 总结的很好
渣渣学安卓之时间选择器和文本框操作
修心 : 666666横线的方式和我想法完全一样
渣渣学安卓之banner图和首页布局
晓见 : 哇哦,小姐姐这个系列文章写得很好哇,期待更多佳作~
渣渣学安卓之登录摸索及页面效果实现
剑轩 : 帅帅帅帅帅!那个背景图是不是有点太大了哦。哈哈相素太高了么,可...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
善思博学,努力进取。