日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

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

發(fā)布時(shí)間:2025/3/21 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 50个Android开发技巧(09 避免用EditText对日期进行验证) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我們都知道,在表單中對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證不但無(wú)聊并且easy出錯(cuò)。
(原文地址:http://blog.csdn.net/vector_yi/article/details/24424713)
想象一下,一個(gè)表單內(nèi)有若干個(gè)須要日期類(lèi)型的輸入,而你又不想對(duì)這些輸入信息進(jìn)行日期類(lèi)型的驗(yàn)證,你會(huì)怎么做? 這里有一種解決的方法是,讓用戶(hù)覺(jué)得他們是在一個(gè)EditText中操作,但實(shí)際上是一個(gè)Button,點(diǎn)擊這個(gè)Button時(shí)會(huì)彈出一個(gè)DatePicker。 為了讓這個(gè)方法可行,我們須要改變這個(gè)Button的背景,讓用戶(hù)以為這是一個(gè)EditText。 事實(shí)上非常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的背景-->
接下來(lái)僅僅要在Activity中加入Button的點(diǎn)擊事件。讓它彈出一個(gè)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);}}


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

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

總結(jié)

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

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