日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

50个Android开发技巧(09 避免用EditText对日期进行验证)

發(fā)布時間:2025/3/21 Android 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 50个Android开发技巧(09 避免用EditText对日期进行验证) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我們都知道,在表單中對數(shù)據(jù)進行驗證不但無聊并且easy出錯。
(原文地址:http://blog.csdn.net/vector_yi/article/details/24424713)
想象一下,一個表單內(nèi)有若干個須要日期類型的輸入,而你又不想對這些輸入信息進行日期類型的驗證,你會怎么做? 這里有一種解決的方法是,讓用戶覺得他們是在一個EditText中操作,但實際上是一個Button,點擊這個Button時會彈出一個DatePicker。 為了讓這個方法可行,我們須要改變這個Button的背景,讓用戶以為這是一個EditText。 事實上非常easy: <Button android:id="@+id/details_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:background="@android:drawable/edit_text" /><!--將Button的背景改為EditText的背景-->
接下來僅僅要在Activity中加入Button的點擊事件。讓它彈出一個DatePicker并將選中的日期設(shè)為Button的Text就可以。


package com.manning.androidhacks.hack009;import java.util.Calendar;import android.app.Activity; import android.app.DatePickerDialog; import android.app.DatePickerDialog.OnDateSetListener; import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker;public class MainActivity extends Activity {private static final int DATE_DIALOG_ID = 0;private int mYear;private int mMonth;private int mDay;private OnDateSetListener mDateSetListener;private Button mDateButton;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// get the current datefinal Calendar c = Calendar.getInstance();mYear = c.get(Calendar.YEAR);mMonth = c.get(Calendar.MONTH);mDay = c.get(Calendar.DAY_OF_MONTH);mDateSetListener = new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {mDateButton.setText(getString(R.string.picked_date_format,monthOfYear + 1, dayOfMonth, year));}};mDateButton = (Button) findViewById(R.id.details_date);mDateButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {showDialog(DATE_DIALOG_ID);}});}@Overrideprotected Dialog onCreateDialog(int id) {switch (id) {case DATE_DIALOG_ID:return new DatePickerDialog(this, mDateSetListener, mYear,mMonth - 1, mDay);}return super.onCreateDialog(id);}}


可能你會覺得EditText和Button都繼承自TextView。為何不直接創(chuàng)建一個EditText并加入OnClickListener? 可是Button不同意用戶直接編輯顯示的文字,顯然讓驗證更加安全
你可能還在堅持,能夠把EditText的Editable屬性設(shè)為false。 可是既然Button存在的意義就是能夠點擊而且不能改動顯示的文字。為何你要強加給EditText一些原本不適合它的屬性讓它變成一個Button
你也能夠利用TextWatcher來驗證EditText的輸入,但這真的不僅無聊并且還費時

轉(zhuǎn)載于:https://www.cnblogs.com/yutingliuyl/p/7072430.html

總結(jié)

以上是生活随笔為你收集整理的50个Android开发技巧(09 避免用EditText对日期进行验证)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。