2016-10-04 4 views
0

에서) 방법을 초기화() 또는 업데이트 (와 날짜 선택을 초기화 할 수 없습니다 :나는 내가 <code>DatePicker</code>을하고 난 다음과 같이 초기화하려고 안드로이드

DatePicker dp_up = (DatePicker) findViewById(R.id.datePicker); 
    String inputPattern = "MMM dd, yyyy"; 
    String outputPattern = "dd/MM/yyyy"; 
    SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern); 
    SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern); 
    Date date = null; 
    String str = null; 
    try { 
     date = inputFormat.parse(GDate); 
     str = outputFormat.format(date); 
     String Astr[] = str.split("/"); 
     int myday = Integer.parseInt(Astr[0]); 
     int mymonth = Integer.parseInt(Astr[1]); 
     int myyear = Integer.parseInt(Astr[2]); 

     **dp_up.updateDate(myyear, mymonth-1, myday);** 

     OR 

     **dp_up.init(myyear, mymonth-1, myday,null);** 

    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

내 변수가 INT 값을 포함하지만 보여주는 유지 현재 날짜가 아니라 내가 원하는 날짜.

날짜 선택의 XML은 사전에

<DatePicker 
    android:layout_width="match_parent" 
    android:layout_height="96dp" 
    android:id="@+id/datePicker" 
    android:layout_gravity="center" 
    android:calendarViewShown="false" 
    android:spinnersShown="true" 
    android:layout_margin="5dp" 
    android:datePickerMode="spinner" 
    android:measureAllChildren="false" 
    android:padding="2dp" /> 

감사합니다.

+0

확인을 업데이트 할 변수 플래그를 모든 시간을 넣어있어 예외가 생겼다면 –

+0

예외를 확인할 수 있습니까? –

+0

로그를 확인하십시오. 당신이 파스 예외를 받고 있다고 생각합니다. –

답변

0

나는 아래의 코드를 적절하게 사용하며 정상적으로 작동합니다. 나는 setContentView 다음에 onCreate를 배치했다.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    DatePicker dp_up = (DatePicker) findViewById(R.id.datePicker); 
    String inputPattern = "MMM dd, yyyy"; 
    String outputPattern = "dd/MM/yyyy"; 
    SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern); 
    SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern); 
    Date date = null; 
    String str = null; 
    try { 
     String GDate = "Oct 21, 2016"; 
     date = inputFormat.parse(GDate); 
     str = outputFormat.format(date); 
     String Astr[] = str.split("/"); 
     int myday = Integer.parseInt(Astr[0]); 
     int mymonth = Integer.parseInt(Astr[1]); 
     int myyear = Integer.parseInt(Astr[2]); 

     dp_up.updateDate(myyear, mymonth-1, myday); 

    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
} 

내 레이아웃

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.elyeproj.myapplication.MainActivity"> 

    <DatePicker 
     android:id="@+id/datePicker" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"></DatePicker> 
</RelativeLayout> 

아래로이 코드를 시도하고 작동하는지 볼 수 있을까? Nexus 5 에뮬레이터 기기에서 Android M을 사용해 보았습니다.

+0

여전히 문자열 GDate = 2016 년 10 월 21 일 "; 당신처럼 DatePicker XML을 단순화했으나 아무 것도하지 않았습니다. –

+0

아마도 실제 데이터를 가리 키도록 레이아웃을 변경할 수도 있습니다 .Picker ... 최신 버전의 Android SDK를 사용하고 있습니까? – Elye

0

내 코드 뒤에

dp.init(year, month, day, new DatePicker.OnDateChangedListener() { 
@Override 
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {} 

몇 줄처럼 내 날짜 선택기 리스너를 정의했고 현재의 날짜 그래서 새 항목을 구분 나에 대한