-1

У меня есть в моем приложении два timepicker, один для timeIn, а другой для TIMEOUT .При editText является cliked, он будет отображать диалог timePicker.Фрагмент уже добавлен: TimePick

private TimePick tp; 
    tp = new TimePick(); 
    private static EditText timeIn; 
    private static EditText timeOut; 

timeIn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { //shows timePick 
       tp.setFlag(TimePick.FLAG_START_DATE); 
       FragmentTransaction ft = getFragmentManager().beginTransaction(); 
       tp.show(ft, "TimePicker"); 
      } 
     }); 

     timeOut.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
     public void onClick(View v) 
      { 

       tp.setFlag(TimePick.FLAG_END_DATE); 
       FragmentTransaction ft = getFragmentManager().beginTransaction(); 
       tp.show(ft, "TimePicker"); 
      } 
     }); 

public static class TimePick extends android.app.DialogFragment implements TimePickerDialog.OnTimeSetListener { 

     public static final int FLAG_START_DATE = 00; 
     public static final int FLAG_END_DATE = 01; 
     private int flag = 00; 

     @Override 
     public Dialog onCreateDialog(Bundle savedInstanceState) { 

      final Calendar c = Calendar.getInstance(); 
      int hour = c.get(Calendar.HOUR_OF_DAY); 
      int minute = c.get(Calendar.MINUTE); 
      return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity())); 
     } 

     public void setFlag(int i) { 
      flag = i; 
     } 

     @Override 
     public void onTimeSet(TimePicker view, int hourofDay, int minute) { 

      if (flag == FLAG_START_DATE) { 
       timeIn.setText(Integer.toString(hourofDay) + ":" + Integer.toString(minute)); 
       TimeIn = timeIn.getText().toString(); 
      } 
      if (flag == FLAG_END_DATE) { 
       timeOut.setText(Integer.toString(hourofDay) + ":" + Integer.toString(minute)); 
       TimeOut = timeOut.getText().toString(); 
      } 
     } 


    } 

Проблема теперь это диалоговое timePicker показывает только, когда я дважды щелкните на EditText. Можно ли изменить его на один клик, а не на двойной щелчок?

Если я нажал более двух раз, приложение разбилось и отобразило ошибку Fragment already added: TimePick{f1f4f2b #0 TimePicker. Я получаю одно из решений от моего предыдущего post, которое добавляет условие if-else, чтобы проверить, отображается ли диалог или нет. Но как насчет TimePicker? Есть ли что-то вроде функции TimePicker d=tp.getTimepicker();?

Спасибо.

ошибка LogCat

11-27 07:17:40.617 2197-2197/? E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: com.example.project.myapplication, PID: 2197 
    java.lang.IllegalStateException: Fragment already added: TimePick{f1f4f2b #0 TimePicker} 
      at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1219) 
      at android.app.BackStackRecord.run(BackStackRecord.java:715) 
      at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1535) 
      at android.app.FragmentManagerImpl$1.run(FragmentManager.java:482) 
      at android.os.Handler.handleCallback(Handler.java:739) 
      at android.os.Handler.dispatchMessage(Handler.java:95) 
      at android.os.Looper.loop(Looper.java:148) 
      at android.app.ActivityThread.main(ActivityThread.java:5417) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
+0

добавить журналы в методе '' OnClick и проверить первый щелчок происходит или нет? –

+0

@ ρяσѕρєяK 'log' не отображается при первом нажатии – Hoo

+0

@ Это происходит из-за того, что editText уже настраивается, помещает текстовое окно вместо edittext и видит, что происходит? –

ответ

0

Можно ли изменить его одним щелчком мыши вместо двойного щелчка?

Да установлен focusableInTouchMode атрибут true для EditText в XML:

<EditText 
    android:focusableInTouchMode="false" 
    ... 
    /> 
+0

Спасибо вам большое – Hoo

Смежные вопросы