启动从编辑文本一个datepicker [英] Launching a DatePicker from edit text

查看:140
本文介绍了启动从编辑文本一个datepicker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用日期选取器上的一个 的EditText

编辑文本的ID是 :: 机器人:ID =@ + ID / DATE_EDIT_TEXT_ID

search_page.xml

 < XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=垂直>

    <的LinearLayout
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT
        机器人:后台=#E1E1E1
        机器人:方向=横向
        机器人:填充=10dp
        机器人:weightSum =1>

        <的TextView
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:文本=城
            机器人:TEXTSIZE =15dp
            机器人:TEXTSTYLE =黑体/>

        <的EditText
            机器人:layout_width =match_parent
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_marginLeft =10dp
            机器人:背景=@可绘制/ rounded_edittext/>
    < / LinearLayout中>

    <查看
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =1DP
        机器人:背景=@机器人:彩色/黑白/>

    <的LinearLayout
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT
        机器人:后台=#E1E1E1
        机器人:方向=横向
        机器人:填充=10dp
        机器人:weightSum =1>

        <的TextView
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:文本=日期
            机器人:TEXTSIZE =15dp
            机器人:TEXTSTYLE =黑体/>

        <的EditText
            机器人:ID =@ + ID / DATE_EDIT_TEXT_ID
            机器人:layout_width =258dp
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_marginLeft =10dp
            机器人:背景=@可绘制/ rounded_edittext
            机器人:的onClick =selectDate/>


    < / LinearLayout中>

    <查看
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =1DP
        机器人:背景=@机器人:彩色/黑白/>

    <的LinearLayout
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT
        机器人:后台=#E1E1E1
        机器人:方向=横向
        机器人:填充=10dp
        机器人:weightSum =2.5>

        <的TextView
            机器人:layout_width =0dp
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_weight =1
            机器人:文本=类型
            机器人:TEXTSIZE =15dp
            机器人:TEXTSTYLE =黑体/>

        < RadioGroup中
            机器人:ID =@ + ID / radioGroup1
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_weight =1
            机器人:方向=横向>

            <单选按钮
                机器人:ID =@ + ID / radio0
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =WRAP_CONTENT
                机器人:layout_marginRight =2DP
                机器人:layout_weight =5
                机器人:背景=@可绘制/ yourbuttonbackground
                机器人:按钮=@机器人:彩色/透明
                机器人:检查=真
                机器人:重力=center_horizo​​ntal
                机器人:填充=5DP
                机器人:文本=早餐/>

            <单选按钮
                机器人:ID =@ + ID /收音机1
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =WRAP_CONTENT
                机器人:layout_marginRight =2DP
                机器人:layout_weight =5
                机器人:背景=@可绘制/ yourbuttonbackground
                机器人:按钮=@机器人:彩色/透明
                机器人:重力=center_horizo​​ntal
                机器人:填充=5DP
                机器人:文本=午餐/>

            <单选按钮
                机器人:ID =@ + ID / RADIO2
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =WRAP_CONTENT
                机器人:layout_marginRight =2DP
                机器人:layout_weight =5
                机器人:背景=@可绘制/ yourbuttonbackground
                机器人:按钮=@机器人:彩色/透明
                机器人:重力=center_horizo​​ntal
                机器人:填充=5DP
                机器人:文本=晚餐/>
        < / RadioGroup中>
    < / LinearLayout中>

    <查看
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =1DP
        机器人:背景=@机器人:彩色/黑白/>

    < RelativeLayout的
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =254dp
        机器人:后台=#E1E1E1
        机器人:的onClick =selectDate
        机器人:方向=横向
        机器人:填充=10dp
        机器人:weightSum =1>

        <按钮
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_alignParentTop =真
            机器人:layout_centerHorizo​​ntal =真
            机器人:layout_marginTop =38dp
            机器人:背景=@可绘制/ blue_button
            机器人:文本=搜索/>
    < / RelativeLayout的>

    < RelativeLayout的
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =50dp
        机器人:后台=#E1E1E1
        机器人:方向=横向>

        <包括布局=@布局/ screen_bottombar_photodesc/>
    < / RelativeLayout的>

< / LinearLayout中>
 

SearchPage.java

 公共类SearchPage扩展FragmentActivity {

    的EditText mEdit;
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.search_page);
    }

    公共无效selectDate(查看视图){
        DialogFragment newFragment =新SelectDateFragment();
        newFragment.show(getSupportFragmentManager(),的DatePicker);
    }
    公共无效populateSetDate(INT年,月整型,INT日){
        mEdit =(EditText上)findViewById(R.id.DATE_EDIT_TEXT_ID);
        mEdit.setText(日+/+月+/+年);
    }
    公共类SelectDateFragment扩展DialogFragment实现DatePickerDialog.OnDateSetListener {
        @覆盖
        公共对话onCreateDialog(包savedInstanceState){
            最后台历挂历= Calendar.getInstance();
            INT YY = calendar.get(Calendar.YEAR);
            INT毫米= calendar.get(Calendar.MONTH);
            INT DD = calendar.get(Calendar.DAY_OF_MONTH);
            返回新DatePickerDialog(getActivity(),这,YY,MM,DD);
        }

        公共无效onDateSet(DatePicker的观点,诠释YY,诠释毫米,诠释DD){
            populateSetDate(YY,DD,MM们+ 1);
        }
    }

}
 


  • 当我点击的编辑文本 机器人:ID =@ + ID / DATE_EDIT_TEXT_ID日期选择器应启动
  • ,但发生的事情是,无论我点击屏幕日期选择器 现推出

如何解决这个

解决方案

  //试试这个
公共类SearchPage扩展FragmentActivity {

    的EditText mEdit;
    DialogFragment newFragment;
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.search_page);
        mEdit =(EditText上)findViewById(R.id.DATE_EDIT_TEXT_ID);
        newFragment =新SelectDateFragment();
        mEdit.setOnClickListener(新View.OnClickListener(){
            @覆盖
            公共无效的onClick(视图查看){
               newFragment.show(getFragmentManager(),的DatePicker);
            }
        });
    }

    公共无效populateSetDate(INT年,月整型,INT日){
        mEdit.setText(日+/+月+/+年);
    }
    公共类SelectDateFragment扩展DialogFragment实现DatePickerDialog.OnDateSetListener {
        @覆盖
        公共对话onCreateDialog(包savedInstanceState){
            最后台历挂历= Calendar.getInstance();
            INT YY = calendar.get(Calendar.YEAR);
            INT毫米= calendar.get(Calendar.MONTH);
            INT DD = calendar.get(Calendar.DAY_OF_MONTH);
            返回新DatePickerDialog(getActivity(),这,YY,MM,DD);
        }

        公共无效onDateSet(DatePicker的观点,诠释YY,诠释毫米,诠释DD){
            populateSetDate(YY,DD,MM们+ 1);
        }
    }

}
 

I am using Date picker on one of the edittext

ID of edit text is :: android:id="@+id/DATE_EDIT_TEXT_ID"

search_page.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#E1E1E1"
        android:orientation="horizontal"
        android:padding="10dp"
        android:weightSum="1" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="City"
            android:textSize=" 15dp"
            android:textStyle="bold" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:background="@drawable/rounded_edittext" />
    </LinearLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="@android:color/black" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#E1E1E1"
        android:orientation="horizontal"
        android:padding="10dp"
        android:weightSum="1" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Date"
            android:textSize=" 15dp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/DATE_EDIT_TEXT_ID"
            android:layout_width="258dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:background="@drawable/rounded_edittext"
            android:onClick="selectDate" />


    </LinearLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="@android:color/black" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#E1E1E1"
        android:orientation="horizontal"
        android:padding="10dp"
        android:weightSum="2.5" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Type"
            android:textSize=" 15dp"
            android:textStyle="bold" />

        <RadioGroup
            android:id="@+id/radioGroup1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/radio0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="2dp"
                android:layout_weight=".5"
                android:background="@drawable/yourbuttonbackground"
                android:button="@android:color/transparent"
                android:checked="true"
                android:gravity="center_horizontal"
                android:padding="5dp"
                android:text="Breakfast" />

            <RadioButton
                android:id="@+id/radio1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="2dp"
                android:layout_weight=".5"
                android:background="@drawable/yourbuttonbackground"
                android:button="@android:color/transparent"
                android:gravity="center_horizontal"
                android:padding="5dp"
                android:text="Lunch" />

            <RadioButton
                android:id="@+id/radio2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="2dp"
                android:layout_weight=".5"
                android:background="@drawable/yourbuttonbackground"
                android:button="@android:color/transparent"
                android:gravity="center_horizontal"
                android:padding="5dp"
                android:text="Dinner" />
        </RadioGroup>
    </LinearLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="@android:color/black" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="254dp"
        android:background="#E1E1E1"
        android:onClick="selectDate"
        android:orientation="horizontal"
        android:padding="10dp"
        android:weightSum="1" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="38dp"
            android:background="@drawable/blue_button"
            android:text="Search" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:background="#E1E1E1"
        android:orientation="horizontal" >

        <include layout="@layout/screen_bottombar_photodesc" />
    </RelativeLayout>

</LinearLayout>

SearchPage.java

public class SearchPage extends FragmentActivity {

    EditText mEdit;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search_page);
    }

    public void selectDate(View view) {
        DialogFragment newFragment = new SelectDateFragment();
        newFragment.show(getSupportFragmentManager(), "DatePicker");
    }
    public void populateSetDate(int year, int month, int day) {
        mEdit = (EditText)findViewById(R.id.DATE_EDIT_TEXT_ID);
        mEdit.setText(day+"/"+month+"/"+year);
    }
    public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            final Calendar calendar = Calendar.getInstance();
            int yy = calendar.get(Calendar.YEAR);
            int mm = calendar.get(Calendar.MONTH);
            int dd = calendar.get(Calendar.DAY_OF_MONTH);
            return new DatePickerDialog(getActivity(), this, yy, mm, dd);
        }

        public void onDateSet(DatePicker view, int yy, int mm, int dd) {
            populateSetDate(yy, dd, mm+1);
        }
    }

}


  • When I click the edit text of android:id="@+id/DATE_EDIT_TEXT_ID" the date picker should launch
  • but what's happening is wherever I click on the screen date picker is launching

how to resolve this

解决方案

// try this
public class SearchPage extends FragmentActivity {

    EditText mEdit;
    DialogFragment newFragment;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search_page);
        mEdit = (EditText)findViewById(R.id.DATE_EDIT_TEXT_ID);
        newFragment = new SelectDateFragment();
        mEdit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               newFragment.show(getFragmentManager(), "DatePicker");
            }
        });
    }

    public void populateSetDate(int year, int month, int day) {
        mEdit.setText(day+"/"+month+"/"+year);
    }
    public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            final Calendar calendar = Calendar.getInstance();
            int yy = calendar.get(Calendar.YEAR);
            int mm = calendar.get(Calendar.MONTH);
            int dd = calendar.get(Calendar.DAY_OF_MONTH);
            return new DatePickerDialog(getActivity(), this, yy, mm, dd);
        }

        public void onDateSet(DatePicker view, int yy, int mm, int dd) {
            populateSetDate(yy, dd, mm+1);
        }
    }

}

这篇关于启动从编辑文本一个datepicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆