2013-07-01 2 views
0

내 현재 안드로이드 프로젝트에서 datepicker를 만들고 싶습니다. 내 MainActivity에 다른 코드가 있습니다. 이것은 내 시간과 날짜 피커 코드가 포함 된 새로운 클래스 "Changedatetime"입니다. 이제 필자의 MainActivity로 결과를 전달하거나 가져올 수 있습니까?어떻게 내 MainActivity에 결과를 전달하거나 얻을 수 있습니까?

Changedatetime :

package com.app.annoy; 

import java.util.Calendar; 

import android.app.Activity; 
import android.app.DatePickerDialog; 
import android.app.Dialog; 
import android.app.TimePickerDialog; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.DatePicker; 
import android.widget.TextView; 
import android.widget.TimePicker; 

public class Changetimedate extends Activity { 

    static final int DATE_DIALOG_ID = 1; 
    static final int TIME_DIALOG_ID = 2; 

    private Button pickDate; 
    private int year, month, day; 

    private Button pickTime; 
    private int hours, min; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.create_layout); 


     pickDate = (Button)findViewById(R.id.date_button); 

     pickDate.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       showDialog(DATE_DIALOG_ID); 
      } 

     }); 

     final Calendar cal = Calendar.getInstance(); 
     year = cal.get(Calendar.YEAR); 
     month = cal.get(Calendar.MONTH); 
     day = cal.get(Calendar.DAY_OF_MONTH); 

     updateDate(); 


     pickTime = (Button)findViewById(R.id.time_button); 

     pickTime.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       showDialog(TIME_DIALOG_ID); 

      } 

     }); 

     hours = cal.get(Calendar.HOUR); 
     min = cal.get(Calendar.MINUTE); 

     updateTime(); 
    } 

    private void updateTime() { 
     pickTime.setText(new StringBuilder().append(hours).append(':') 
       .append(min)); 

    } 

    private void updateDate() { 
     pickDate.setText(new StringBuilder().append(day).append('-') 
       .append(month + 1).append('-').append(year)); 

    } 

    private DatePickerDialog.OnDateSetListener dateListener = 
     new DatePickerDialog.OnDateSetListener() { 

      @Override 
      public void onDateSet(DatePicker view, int yr, int monthOfYear, 
        int dayOfMonth) { 
       year = yr; 
       month = monthOfYear; 
       day = dayOfMonth; 
       updateDate(); 
      } 
    }; 

    private TimePickerDialog.OnTimeSetListener timeListener = 
     new TimePickerDialog.OnTimeSetListener() { 

      @Override 
      public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
       hours = hourOfDay; 
       min = minute; 
       updateTime(); 
      } 

    }; 
    protected Dialog onCreateDialog(int id){ 
     switch(id) { 
     case DATE_DIALOG_ID: 
      return new DatePickerDialog(this, dateListener, year, month, day); 
     case TIME_DIALOG_ID: 
      return new TimePickerDialog(this, timeListener, hours, min, false); 
     } 
     return null; 

    } 
} 
+0

이 코드는 아무 문제없이 작동합니다. – Gunaseelan

+0

뭔가를 시도해보십시오 : 모든 버튼에 대해 onClick 메서드를 사용하여 버튼이 작동하는지 확인한 후 축하합니다. – Opiatefuchs

+0

안녕하세요. 사실, 내 MainActivity 클래스에서 tabhost 코드를 제거하고 위의 pickers 코드로 바꾸면 작동합니다. 그렇지만 탭 호스트는 MainActivity 클래스에 있어야합니다. 함께 작업하게하려면 어떻게해야합니까? –

답변

0

이 문제를 일으키는 지 내가 아는하지는하지만 당신은 XML 레이아웃의 일부 wron 선언이있다. 첫 번째 버튼에서 layout_toLeftOf = "@ + id ...."를 작성하고 "+"를 삭제하십시오. 두 번째 버튼에서 id를 "@id/..."로 정의했으면 여기에 "+"를 추가하십시오. 레이아웃은 다음과 같아야합니다.

<Button 
     android:id="@+id/date_button" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/edit_venue" 
     android:layout_alignParentLeft="true" 
     android:layout_toLeftOf="@id/time_button" <-----this was wrong 
     android:text="@string/date_label" 
     /> 


    <Button 
     android:id="@+id/time_button" <---this was wrong 
     android:layout_width="160dp" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/edit_venue" 
     android:layout_alignParentRight="true" 
     android:text="@string/time_label" 
     /> 
+0

예. 고맙습니다. 위의 변경 사항을 적용했지만 pickers는 여전히 작동하지 않습니다. –

관련 문제