tnblog
首页
视频
资源
登录

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

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

一、时间选择器


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



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


假设新建页面 sheqing_list:


activity_sheqing_list.xml 布局页:


 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="20dp"
            android:layout_marginRight="10dp"
            android:layout_marginBottom="10dp"
            android:text="请选择开始结束时间:" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <LinearLayout
                android:layout_width="120dp"
                android:layout_height="match_parent"
                android:layout_marginLeft="20dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/btnbegin"
                    android:layout_width="120dp"
                    android:layout_height="wrap_content"
                    android:background="@android:drawable/edit_text"
                    android:text="2018-01-01"
                    android:textColor="@android:color/black" />


            </LinearLayout>

            <LinearLayout
                android:layout_width="120dp"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/btnover"
                    android:layout_width="120dp"
                    android:layout_height="wrap_content"
                    android:background="@android:drawable/edit_text"
                    android:text="2019-12-31"
                    android:textColor="@android:color/black" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="100dp"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <Button
                    android:id="@+id/btnselect"
                    style="@style/Widget.AppCompat.Button.Colored"
                    android:layout_width="80dp"
                    android:layout_height="wrap_content"
                    android:text="查询" />
            </LinearLayout>

        </LinearLayout>
  </LinearLayout>

 

sheqing_list.java页面:


package xyz.ecoo.www.imagecarouseldemo;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;

import java.util.Calendar;

public class sheqing_list extends Activity implements View.OnClickListener {

    private TextView btnbegin;
    private TextView btnover;
    private Calendar cal;
    private int year,month,day;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sheqing_list);

        //获取当前日期  开始
        getbeginDate();
        btnbegin=(TextView) findViewById(R.id.btnbegin);
        btnbegin.setOnClickListener(this);

        //获取当前日期  结束
        getoverDate();
        btnover=(TextView) findViewById(R.id.btnover);
        btnover.setOnClickListener(this);
    }

    //获取当前日期  开始
    private void getbeginDate() {
        cal=Calendar.getInstance();
        year=cal.get(Calendar.YEAR);       //获取年月日时分秒
        month=cal.get(Calendar.MONTH);   //获取到的月份是从0开始计数
        day=cal.get(Calendar.DAY_OF_MONTH);
    }
    //获取当前日期  结束
    private void getoverDate() {
        cal=Calendar.getInstance();
        year=cal.get(Calendar.YEAR);       //获取年月日时分秒
        month=cal.get(Calendar.MONTH);   //获取到的月份是从0开始计数
        day=cal.get(Calendar.DAY_OF_MONTH);
    }

    //开始按钮
    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btnbegin:
                DatePickerDialog.OnDateSetListener listener=new DatePickerDialog.OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker arg0, int year, int month, int day) {
                        btnbegin.setText(year+"-"+(++month)+"-"+day);      //将选择的日期显示到TextView中,因为之前获取month直接使用,所以不需要+1,这个地方需要显示,所以+1
                    }
                };
                DatePickerDialog dialog=new DatePickerDialog(sheqing_list.this, DatePickerDialog.THEME_HOLO_LIGHT,listener,year,month,day);//主题在这里!后边三个参数为显示dialog时默认的日期,月份从0开始,0-11对应1-12个月
                dialog.show();
                break;

            case R.id.btnover:
                DatePickerDialog.OnDateSetListener listener1=new DatePickerDialog.OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker arg0, int year, int month, int day) {
                        btnover.setText(year+"-"+(++month)+"-"+day);      //将选择的日期显示到TextView中,因为之前获取month直接使用,所以不需要+1,这个地方需要显示,所以+1
                    }
                };
                DatePickerDialog dialog1=new DatePickerDialog(sheqing_list.this, DatePickerDialog.THEME_HOLO_LIGHT,listener1,year,month,day);//主题在这里!后边三个参数为显示dialog时默认的日期,月份从0开始,0-11对应1-12个月
                dialog1.show();
                break;

            default:
                break;
        }


    }

}


效果即可实现。


二、文本框


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




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


<LinearLayout
                android:layout_width="110dp"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView20"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@android:drawable/edit_text"
                    android:gravity="center_horizontal"
                    android:text="反映" />
            </LinearLayout>


其实只用加一句代码 即可


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


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


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

<View
                android:id="@+id/view1"
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="10dp"
                android:layout_marginRight="5dp"
                android:background="#aa000000" />

这样一条线就出来了。


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

评价
真正的顺其自然,其实是竭尽所能之后的不强求,而非两手一摊的不作为
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术