2016-03-28 15 views
0

私はAndroidと学習するのが非常に新しいです。Android TimePickerはデータを返さない

TimePickerを実装しようとしています。ユーザーが時間を選択しなければならないポイントまですべてが正常に機能し、その特定の時間は更新されません。

私は間違っていますか? rest of my codeはGitHubにあります。

public class TimePickerFragment extends DialogFragment { 
    private static final String ARG_TIME = "date"; 
    public static final String EXTRA_TIME = "time"; 
    private TimePicker mTimePicker; 

    public static TimePickerFragment newInstance(Date date) { 

    Bundle args = new Bundle(); 
    args.putSerializable(ARG_TIME, date); 

    TimePickerFragment fragment = new TimePickerFragment(); 
    fragment.setArguments(args); 
    return fragment; 
    } 


    public Dialog onCreateDialog(Bundle savedInstanceState) { 

    View v = LayoutInflater.from(getActivity()).inflate(R.layout.picker_time_fragment, null); 
    final Date time = (Date) getArguments().getSerializable(ARG_TIME); 

    Calendar a = Calendar.getInstance(); 
    final int hour = a.get(Calendar.HOUR_OF_DAY); 
    final int minute = a.get(Calendar.MINUTE); 
    mTimePicker = (TimePicker) v.findViewById(R.id.time_picker_layout); 


    return new AlertDialog.Builder(getActivity()) 
     .setView(v) 
     .setTitle(R.string.time_picker_crime_title) 
     .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
       mTimePicker.setHour(hour); 
       mTimePicker.setMinute(minute); 
      } 

      sendResultTime(Activity.RESULT_OK, time); 
      } 
     }) 
     .show(); 
    } 

    private void sendResultTime(int resultCode, Date time) { 
    if (getTargetFragment() == null) { 
     return; 
    } 
    Intent intent = new Intent(); 
    intent.putExtra(EXTRA_TIME, time); 

    getTargetFragment().onActivityResult(getTargetRequestCode(), resultCode, intent); 
    } 

} 
+0

なぜマシュマロ以上のsdkバージョンチェック条件を使用していますか? –

+0

それ以外の場合は、コールにAPIレベル23が必要です(現在の最小値は16です)。そして私は.setCurrentHourを使うことはできません。私は何をすべきか? – Stefanm89

+0

それはマシュマロ装置で働いていますか? –

答えて

0
String deli_time = shared_preference.getString("delivery_time", ""); 
List<String> timeList1 = Arrays.asList(deli_time.split(" ")); 
String time_value = timeList1.get(1).trim()+" "+timeList1.get(2).trim(); 
Date dateObj = sdf2.parse(time_value); 
time_value = sdf1.format(dateObj); 
Date dateObj1 = sdf3.parse(timeList1.get(0)); 
dayOfTheWeek = sdf.format(dateObj1); 
String time = ""; 
time = ZainbowDatabase.getInstance(MyBasket.this).getTimeForDay(mall_id, t1_vendor_id, dayOfTheWeek, 2); 

if(time.length() > 0 && !time.equalsIgnoreCase("")){ 
    String time1, time2 = ""; 
    if(time.contains(",")){ 
     List<String> timeList = Arrays.asList(time.split(",")); 
     time1 = timeList.get(0); 
     time2 = timeList.get(1); 
    }else 
     time1 = time; 

    boolean check_time = AppConstant.checkTime(time1, time2, time_value); 

timePickerため、このコードに関連しています。これは役に立ちます。 Zainbow DBラインを無視してください。これは特定のエンティティの時刻を確認することに過ぎません。それはまったく必要ありません。

0

が、これに代えて

mTimePicker.setCurrentHour(hour); mTimePicker.setCurrentMinute(minute);

使用してみてください:

mTimePicker.setHour(hour); mTimePicker.setMinute(minute);

とそのSDKの条件を削除する...

+0

すぐに答えていただきありがとうございますが、mTimePicker.setCurrentHour(時)を使用すると、推奨されなくなり、依然として動作しません。 – Stefanm89

0

は、なぜあなたはTimePickerDialogを使用していけませんか?あなたは、ユーザーが1日の時間を正しく選択してほしいと確信していますか?あなたが必要としているものは次のとおりです:

TimePickerDialog timePicker = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { 
       @Override 
       public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
       //User selected something   
       } 
     }, 9, 11, true); 
timePicker.show(); 
関連する問題