简单timepicker一个片段活动 [英] Simple timepicker for a fragment activity

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

问题描述

我想推出一个 timepicker 的EditText 在一个片段

Buffet_offerings_breakfast_menu2.java

 公共类Buffet_offerings_breakfast_menu2扩展片段实现PickTime {

    RadioGroup中RadioGroup中;


    的EditText ED1,ED2;
    布尔标志= FALSE;
    TimePickerFragment newFragment;


    @覆盖
    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
            捆绑savedInstanceState){
        // TODO自动生成方法存根

        最终的视图中查看= inflater.inflate(R.layout.buffet_offerings_breakfast_menu2,集装箱,假);

        ED1 =(EditText上)view.findViewById(R.id.from_lunch_edit_text_id);
        ED2 =(EditText上)view.findViewById(R.id.to_lunch_edit_text_id);

        RadioGroup中=(RadioGroup中)view.findViewById(R.id.radioGroup1);

        newFragment =新TimePickerFragment();

        ed1.setOnFocusChangeListener(新OnFocusChangeListener(){
            @覆盖
            公共无效onFocusChange(视图V,布尔hasFocus){
                如果(hasFocus){
                  标志= FALSE;
                  newFragment.show(getFragmentManager(),timePicker);
                }
               }
            });

        ed2.setOnFocusChangeListener(新OnFocusChangeListener(){
            @覆盖
            公共无效onFocusChange(视图V,布尔hasFocus){
                如果(hasFocus){
                  标志=真正的;
                  newFragment.show(getFragmentManager(),timePicker);
                }
               }
            });
        radioGroup.setOnCheckedChangeListener(新OnCheckedChangeListener(){
          公共无效onCheckedChanged(RadioGroup中组,诠释checkedId){
             // checkedId是单选按钮选定
                   如果(checkedId == R.id.SelectDaysRG_ID)
                   {
                      view.findViewById(R.id.linearLayout_individualdays).setVisibility(View.VISIBLE);
                   }
                   否则,如果(checkedId == R.id.WeekdaysRG_ID)
                   {
                       view.findViewById(R.id.linearLayout_individualdays).setVisibility(View.INVISIBLE);
                   }
                   否则,如果(checkedId == R.id.WeekendsRG_ID)
                   {
                       view.findViewById(R.id.linearLayout_individualdays).setVisibility(View.INVISIBLE);
                   }

          }
        });


        返回查看;
    }

    @覆盖
    公共无效returnTime(字符串值){
        // TODO自动生成方法存根
        如果(旗==假)
        ed1.setText(值);
        否则,如果(旗==真)
        ed2.setText(值);

    }



}
 

TimePickerFragment.java

 公共类TimePickerFragment扩展DialogFragment
实现TimePickerDialog.OnTimeSetListener {
    公共接口PickTime
    {
        公共无效returnTime(字符串值);

    }

    PickTime mCallback;
    @覆盖
    公共对话onCreateDialog(包savedInstanceState){
        //使用当前时间作为选择器的默认值
        mCallback =(PickTime)getActivity();
        最后的日历C = Calendar.getInstance();
        INT小时= c.get(Calendar.HOUR_OF_DAY);
        INT分钟= c.get(Calendar.MINUTE);

        //创建TimePickerDialog的新实例,并将其返回
        返回新TimePickerDialog(getActivity(),这一点,小时,分钟,
                DateFormat.is24HourFormat(getActivity()));
    }

    公共无效onTimeSet(TimePicker观点,诠释hourOfDay,INT分钟){
        //做一些与用户所选择的时间

        如果(mCallback!= NULL)
        {
            StringBuilder的SB =新的StringBuilder();
            sb.append(hourOfDay);
            sb.append(:);
            sb.append(分钟);
            mCallback.returnTime(sb.toString());
        }
    }
}
 

登录 ::

 八月12日至27日:55:53.543:E / AndroidRuntime(279):致命异常:主要
八月12号至27日:55:53.543:E / AndroidRuntime(279):java.lang.ClassCastException:com.project.findmybuffet.BuffetOfferings_MainFragmentActivity
八月12号至27日:55:53.543:E / AndroidRuntime(279):在com.project.findmybuffet.TimePickerFragment.onCreateDialog(TimePickerFragment.java:24)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.support.v4.app.DialogFragment.getLayoutInflater(DialogFragment.java:295)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.support.v4.app.FragmentManagerImpl $ 1.运行(FragmentManager.java:440)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.os.Handler.handleCallback(Handler.java:587)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.os.Handler.dispatchMessage(Handler.java:92)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.os.Looper.loop(Looper.java:123)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在android.app.ActivityThread.main(ActivityThread.java:4627)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在java.lang.reflect.Method.invokeNative(本机方法)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在java.lang.reflect.Method.invoke(Method.java:521)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
八月12号至27日:55:53.543:E / AndroidRuntime(279):在dalvik.system.NativeStart.main(本机方法)
 


{}编辑主持片段的活性

BuffetOfferings_MainFragmentActivity.java

 公共类BuffetOfferings_MainFragmentActivity扩展FragmentActivity {

    按钮back_button;

    FragmentManager经理;
    FragmentTransaction交易;
    @覆盖
    保护无效的onCreate(包savedInstanceState){
        // TODO自动生成方法存根
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.buffet_offerings_fragment_main_reference);

        Buffet_offerings_breakfast_menu1 breakfast_fragment =新Buffet_offerings_breakfast_menu1();
        Buffet_offerings_lunch_menu1 lunch_fragment =新Buffet_offerings_lunch_menu1();
        Buffet_offerings_dinner_menu1 dinner_fragment =新Buffet_offerings_dinner_menu1();

        经理= getSupportFragmentManager();
        交易= manager.beginTransaction();

        transaction.add(R.id.BREAKFAST_LAYOUT_ID,breakfast_fragment,breakfast_menu1_fragment);
        transaction.add(R.id.LUNCH_LAYOUT_ID,lunch_fragment,lunch_menu1_fragment);
        transaction.add(R.id.DINNER_LAYOUT_ID,dinner_fragment,dinner_menu1_fragment);

        器transaction.commit();



        back_button =(按钮)findViewById(R.id.TopNavigationBarRestaurantBuffetOfferingsBackButton);
        back_button.setOnClickListener(新OnClickListener(){

            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                完();

            }
        });









    }

    公共无效BreakfastRedMenu1(查看V){

        Buffet_offerings_breakfast_menu2 breakfast_fragment1 =新Buffet_offerings_breakfast_menu2();
        交易= manager.beginTransaction();
        transaction.replace(R.id.BREAKFAST_LAYOUT_ID,breakfast_fragment1,Tag1中);
        器transaction.commit();

    }

    公共无效LunchRedMenu1(查看V){

        Buffet_offerings_lunch_menu2 lunch_fragment1 =新Buffet_offerings_lunch_menu2();
        交易= manager.beginTransaction();
        transaction.replace(R.id.LUNCH_LAYOUT_ID,lunch_fragment1,与Tag2);
        器transaction.commit();

    }

    公共无效DinnerRedMenu1(查看V){

        Buffet_offerings_dinner_menu2 dinner_fragment1 =新Buffet_offerings_dinner_menu2();
        交易= manager.beginTransaction();
        transaction.replace(R.id.DINNER_LAYOUT_ID,dinner_fragment1,TAG3);
        器transaction.commit();

    }


    公共无效BreakfastGreenMenu2(查看V){

        Buffet_offerings_breakfast_menu1 breakfast_fragment2 =新Buffet_offerings_breakfast_menu1();
        交易= manager.beginTransaction();
        transaction.replace(R.id.BREAKFAST_LAYOUT_ID,breakfast_fragment2,TAG4);
        器transaction.commit();

    }

    公共无效LunchGreenMenu2(查看V){

        Buffet_offerings_lunch_menu1 lunch_fragment2 =新Buffet_offerings_lunch_menu1();
        交易= manager.beginTransaction();
        transaction.replace(R.id.LUNCH_LAYOUT_ID,lunch_fragment2,Tag5);
        器transaction.commit();

    }

    公共无效DinnerGreenMenu2(查看V){

        Buffet_offerings_dinner_menu1 dinner_fragment2 =新Buffet_offerings_dinner_menu1();
        交易= manager.beginTransaction();
        transaction.replace(R.id.DINNER_LAYOUT_ID,dinner_fragment2,Tag6);
        器transaction.commit();

    }


}
 

解决方案

所有片段到片段的通信是通过相关的活动进行。两个片段不应该直接沟通。

http://developer.android.com/training/basics/fragments/ communicating.html

您可以通过接口作为回调到活动中。因此,获得了一次活动,然后传达给片段。

例如:

有关的例子起见,我延伸活动。您可以扩展FragmentAcitivty ANS使用支持库,并作出适当的进口。

 公共类MainActivity扩展活动实现PickTime {

        EditFragment newFragment;
        @覆盖
        保护无效的onCreate(包savedInstanceState){
            super.onCreate(savedInstanceState);
            的setContentView(R.layout.activity_main);
            newFragment =新EditFragment();
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction交易= fragmentManager.beginTransaction();
            transaction.replace(R.id.container,newFragment);
            //transaction.addToBackStack(null);
            器transaction.commit();
        }

        @覆盖
        公共布尔onCreateOptionsMenu(功能菜单){
            //充气菜单;这增加了项目操作栏,如果它是present。
            。getMenuInflater()膨胀(R.menu.main,菜单);
            返回true;
        }

        @覆盖
        公共无效returnTime(字符串值){
            // TODO自动生成方法存根
            如果(newFragment.isVisible())
            {
                newFragment.setEdittextvalue(值);
            }

        }

    }
 

片段,只需EDITTEXT

 公共类EditFragment扩展片段{

    的EditText编;
    @覆盖
    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
            捆绑savedInstanceState){
        视图V = inflater.inflate(R.layout.fragmentlayout,集装箱,假);

        返回伏;
    }
    @覆盖
    公共无效onActivityCreated(包savedInstanceState){
        // TODO自动生成方法存根
        super.onActivityCreated(savedInstanceState);
        ED =(EditText上)getView()findViewById(R.id.editText1)。
        ed.setOnClickListener(新OnClickListener()
        {

            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
              TimePickerFragment newFragment =新TimePickerFragment();
              newFragment.show(getFragmentManager(),timePicker);
            }

        });
    }
    公共无效setEdittextvalue(字符串值){
        // TODO自动生成方法存根
        ed.setText(值);

    }
}
 

TimerPickerFragment

 公共类TimePickerFragment扩展DialogFragment
实现TimePickerDialog.OnTimeSetListener {


    @覆盖
    公共无效onAttach(活动活动){
        // TODO自动生成方法存根
        super.onAttach(活动);
        mCallback =(PickTime)的活动;
    }

    公共接口PickTime
    {
        公共无效returnTime(字符串值);

    }

    PickTime mCallback;
    @覆盖
    公共对话onCreateDialog(包savedInstanceState){
        //使用当前时间作为选择器的默认值

        最后的日历C = Calendar.getInstance();
        INT小时= c.get(Calendar.HOUR_OF_DAY);
        INT分钟= c.get(Calendar.MINUTE);

        //创建TimePickerDialog的新实例,并将其返回
        返回新TimePickerDialog(getActivity(),这一点,小时,分钟,
                DateFormat.is24HourFormat(getActivity()));
    }

    公共无效onTimeSet(TimePicker观点,诠释hourOfDay,INT分钟){
        //做一些与用户所选择的时间

        如果(mCallback!= NULL)
        {
            StringBuilder的SB =新的StringBuilder();
            sb.append(hourOfDay);
            sb.append(:);
            sb.append(分钟);
            mCallback.returnTime(sb.toString());
        }
    }
}
 

I am trying to launch a timepicker from a edittext in a fragment

Buffet_offerings_breakfast_menu2.java

public class Buffet_offerings_breakfast_menu2 extends Fragment implements PickTime{

    RadioGroup radioGroup;


    EditText ed1,ed2;
    boolean flag =false;
    TimePickerFragment newFragment;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub

        final View view=inflater.inflate(R.layout.buffet_offerings_breakfast_menu2, container, false);

        ed1 = (EditText) view.findViewById(R.id.from_lunch_edit_text_id);
        ed2 = (EditText) view.findViewById(R.id.to_lunch_edit_text_id);

        radioGroup = (RadioGroup) view.findViewById(R.id.radioGroup1);        

        newFragment = new TimePickerFragment();

        ed1.setOnFocusChangeListener(new OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if(hasFocus){
                  flag =false;
                  newFragment.show(getFragmentManager(), "timePicker");
                }
               }
            });

        ed2.setOnFocusChangeListener(new OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if(hasFocus){
                  flag =true;
                  newFragment.show(getFragmentManager(), "timePicker");
                }
               }
            });
        radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener(){  
          public void onCheckedChanged(RadioGroup group, int checkedId) {
             // checkedId is the RadioButton selected
                   if(checkedId == R.id.SelectDaysRG_ID)
                   {
                      view.findViewById(R.id.linearLayout_individualdays).setVisibility(View.VISIBLE);
                   }
                   else if(checkedId == R.id.WeekdaysRG_ID)
                   {
                       view.findViewById(R.id.linearLayout_individualdays).setVisibility(View.INVISIBLE);
                   }
                   else if(checkedId == R.id.WeekendsRG_ID)
                   {
                       view.findViewById(R.id.linearLayout_individualdays).setVisibility(View.INVISIBLE);
                   }

          }
        });


        return view;
    }

    @Override
    public void returnTime(String value) {
        // TODO Auto-generated method stub
        if(flag==false)
        ed1.setText(value);
        else if(flag==true)
        ed2.setText(value);

    }



}

TimePickerFragment.java

public class TimePickerFragment extends DialogFragment
implements TimePickerDialog.OnTimeSetListener {
    public interface PickTime
    {
        public void returnTime(String value);

    }

    PickTime mCallback;
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current time as the default values for the picker
        mCallback = (PickTime) getActivity();
        final Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);

        // Create a new instance of TimePickerDialog and return it
        return new TimePickerDialog(getActivity(), this, hour, minute,
                DateFormat.is24HourFormat(getActivity()));
    }

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // Do something with the time chosen by the user

        if(mCallback!=null)
        {
            StringBuilder sb = new StringBuilder();
            sb.append(hourOfDay);
            sb.append(":");
            sb.append(minute);
            mCallback.returnTime(sb.toString());
        }
    }
}

Log::

12-27 08:55:53.543: E/AndroidRuntime(279): FATAL EXCEPTION: main
12-27 08:55:53.543: E/AndroidRuntime(279): java.lang.ClassCastException: com.project.findmybuffet.BuffetOfferings_MainFragmentActivity
12-27 08:55:53.543: E/AndroidRuntime(279):  at com.project.findmybuffet.TimePickerFragment.onCreateDialog(TimePickerFragment.java:24)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.support.v4.app.DialogFragment.getLayoutInflater(DialogFragment.java:295)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.os.Handler.handleCallback(Handler.java:587)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.os.Handler.dispatchMessage(Handler.java:92)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.os.Looper.loop(Looper.java:123)
12-27 08:55:53.543: E/AndroidRuntime(279):  at android.app.ActivityThread.main(ActivityThread.java:4627)
12-27 08:55:53.543: E/AndroidRuntime(279):  at java.lang.reflect.Method.invokeNative(Native Method)
12-27 08:55:53.543: E/AndroidRuntime(279):  at java.lang.reflect.Method.invoke(Method.java:521)
12-27 08:55:53.543: E/AndroidRuntime(279):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-27 08:55:53.543: E/AndroidRuntime(279):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-27 08:55:53.543: E/AndroidRuntime(279):  at dalvik.system.NativeStart.main(Native Method)


{Edit} hosted fragment activity

BuffetOfferings_MainFragmentActivity.java

public class BuffetOfferings_MainFragmentActivity extends FragmentActivity{

    Button back_button;

    FragmentManager manager;
    FragmentTransaction transaction;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.buffet_offerings_fragment_main_reference);

        Buffet_offerings_breakfast_menu1 breakfast_fragment=new Buffet_offerings_breakfast_menu1();
        Buffet_offerings_lunch_menu1 lunch_fragment=new Buffet_offerings_lunch_menu1();
        Buffet_offerings_dinner_menu1 dinner_fragment=new Buffet_offerings_dinner_menu1();

        manager=getSupportFragmentManager();
        transaction=manager.beginTransaction();

        transaction.add(R.id.BREAKFAST_LAYOUT_ID,breakfast_fragment, "breakfast_menu1_fragment");
        transaction.add(R.id.LUNCH_LAYOUT_ID,lunch_fragment, "lunch_menu1_fragment");
        transaction.add(R.id.DINNER_LAYOUT_ID,dinner_fragment, "dinner_menu1_fragment");

        transaction.commit();



        back_button=(Button) findViewById(R.id.TopNavigationBarRestaurantBuffetOfferingsBackButton);
        back_button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                finish();

            }
        });









    }

    public void BreakfastRedMenu1(View V){

        Buffet_offerings_breakfast_menu2  breakfast_fragment1=new Buffet_offerings_breakfast_menu2();
        transaction=manager.beginTransaction();
        transaction.replace(R.id.BREAKFAST_LAYOUT_ID, breakfast_fragment1, "Tag1");
        transaction.commit();

    }

    public void LunchRedMenu1(View V){

        Buffet_offerings_lunch_menu2  lunch_fragment1=new Buffet_offerings_lunch_menu2();
        transaction=manager.beginTransaction();
        transaction.replace(R.id.LUNCH_LAYOUT_ID, lunch_fragment1, "Tag2");
        transaction.commit();

    }

    public void DinnerRedMenu1(View V){

        Buffet_offerings_dinner_menu2  dinner_fragment1=new Buffet_offerings_dinner_menu2();
        transaction=manager.beginTransaction();
        transaction.replace(R.id.DINNER_LAYOUT_ID, dinner_fragment1, "Tag3");
        transaction.commit();

    }


    public void BreakfastGreenMenu2(View V){

        Buffet_offerings_breakfast_menu1  breakfast_fragment2=new Buffet_offerings_breakfast_menu1();
        transaction=manager.beginTransaction();
        transaction.replace(R.id.BREAKFAST_LAYOUT_ID, breakfast_fragment2, "Tag4");
        transaction.commit();

    }   

    public void LunchGreenMenu2(View V){

        Buffet_offerings_lunch_menu1  lunch_fragment2=new Buffet_offerings_lunch_menu1();
        transaction=manager.beginTransaction();
        transaction.replace(R.id.LUNCH_LAYOUT_ID, lunch_fragment2, "Tag5");
        transaction.commit();

    }

    public void DinnerGreenMenu2(View V){

        Buffet_offerings_dinner_menu1  dinner_fragment2=new Buffet_offerings_dinner_menu1();
        transaction=manager.beginTransaction();
        transaction.replace(R.id.DINNER_LAYOUT_ID, dinner_fragment2, "Tag6");
        transaction.commit();

    }


}

解决方案

All Fragment-to-Fragment communication is done through the associated Activity. Two Fragments should never communicate directly.

http://developer.android.com/training/basics/fragments/communicating.html

You can interface as a call back to the activity. So get the time in activity and then communicate to fragment.

Example:

For the example sake i am extending Activity. You can extend FragmentAcitivty ans use support library and make proper imports.

    public class MainActivity extends Activity implements PickTime{

        EditFragment newFragment; 
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            newFragment = new EditFragment();
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction transaction = fragmentManager.beginTransaction();
            transaction.replace(R.id.container, newFragment);
            //transaction.addToBackStack(null);
            transaction.commit();
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }

        @Override
        public void returnTime(String value) {
            // TODO Auto-generated method stub
            if(newFragment.isVisible())
            {
                newFragment.setEdittextvalue(value);
            }

        }

    }

Fragment with just a Edittext

public class EditFragment extends Fragment {

    EditText ed;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragmentlayout,container,false);

        return v;
    }
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);
        ed = (EditText) getView().findViewById(R.id.editText1);
        ed.setOnClickListener(new  OnClickListener()
        {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
              TimePickerFragment newFragment = new TimePickerFragment();
              newFragment.show(getFragmentManager(), "timePicker");
            }

        });
    }
    public void setEdittextvalue(String value) {
        // TODO Auto-generated method stub
        ed.setText(value);

    }
}

TimerPickerFragment

public class TimePickerFragment extends DialogFragment
implements TimePickerDialog.OnTimeSetListener {


    @Override
    public void onAttach(Activity activity) {
        // TODO Auto-generated method stub
        super.onAttach(activity);
        mCallback = (PickTime) activity;
    }

    public interface PickTime
    {
        public void returnTime(String value);

    }

    PickTime mCallback;
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current time as the default values for the picker

        final Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);

        // Create a new instance of TimePickerDialog and return it
        return new TimePickerDialog(getActivity(), this, hour, minute,
                DateFormat.is24HourFormat(getActivity()));
    }

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // Do something with the time chosen by the user

        if(mCallback!=null)
        {
            StringBuilder sb = new StringBuilder();
            sb.append(hourOfDay);
            sb.append(":");
            sb.append(minute);
            mCallback.returnTime(sb.toString());
        }
    }
}

这篇关于简单timepicker一个片段活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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