2016-02-06 66 views
-1

我想將變量year,month和day傳遞給另一個活動。將日期選擇器年,日,月變量傳遞給另一個活動

我該怎麼做?

Button button; 
int year_x,month_x,day_x; 
static final int DIALOG_ID = 0; 


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

    final Calendar cal = Calendar.getInstance(); 
    year_x = cal.get(Calendar.YEAR); 
    month_x = cal.get(Calendar.MONTH); 
    day_x = cal.get(Calendar.DAY_OF_MONTH); 

    showDialogOnButtonClick(); 
} 


public void showDialogOnButtonClick(){ 

    button = (Button)findViewById(R.id.button); 
    button.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        showDialog(DIALOG_ID); 
       } 
      } 
    ); 
} 


@Override 
protected Dialog onCreateDialog(int id){ 

    if(id == DIALOG_ID) 
     return new DatePickerDialog(this,dpickerListner,year_x,month_x,day_x); 
    return null; 
} 
private DatePickerDialog.OnDateSetListener dpickerListner 
     = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     year_x = year; 
     month_x = monthOfYear + 1; 
     day_x = dayOfMonth; 
     Toast.makeText(MainActivity.this,year_x +"/"+ month_x+"/"+day_x,Toast.LENGTH_LONG).show(); 
    } 
}; 

我這是怎麼開始這顯示了CalendarView和DatePicker的

public void onButtonClick(View view){ 
    if(view.getId()==R.id.button2) 
    { 
     Intent i = new Intent(MainActivity.this,CalendarView.class); 
     startActivity(i); 
    } 
} 
} 
+1

歡迎的StackOverflow!請關閉大寫鎖定。謝謝。 –

+2

可能的重複[如何在Android上的活動之間傳遞數據?](http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-on-android) –

回答

2

我沒有足夠的信譽發表評論,這就是爲什麼我在這裏回答你的問題的活動。

因此,首先創建一個pojo類來保存您想要傳遞給下一個活動的數據。

創建一個POJO類的一個對象,並把它放在你這裏創建的意圖對象:

Intent i = new Intent(MainActivity.this,CalendarView.class); 
     startActivity(i); 

即你的代碼現在看起來應該如下:

Intent i = new Intent(MainActivity.this,CalendarView.class); 
i.putExtra("data", yourPojoObj); 
     startActivity(i); 

完蛋了。確保pojo類從java實現Serializable接口。

+0

或者, 'startActivityForResult'適用於從CalendarView傳回數據,我相信這是在問題 –

+0

中所要求的,感謝@Mrunalini Pawar的回覆。我不知道什麼是編程新的pojo類,但是我會尋找它,謝謝你的回覆。 – MJnocyas

+0

@MJS - Plain Old Java Object = POJO –

0

活動1:

int yr, month, day, hour; 
    public void getCurrentDate() { //Consider getting date from Device 
     Calendar today = Calendar.getInstance(); 
     yr = today.get(Calendar.YEAR); 
     month = today.get(Calendar.MONTH); 
     day = today.get(Calendar.DAY_OF_MONTH); 
     hour = today.get(Calendar.HOUR_OF_DAY); 
    } 
Intent i=new Intent(Activity1.this,Activity2.class); 
i.putExtra("year", yr); 
i.putExtra("Month ", month); 
startActvity(i); 

活動2:

Intent mIntent = getIntent(); 
int yrr= mIntent.getIntExtra("year", 0); 
int monthh= mIntent.getIntExtra("Month", 0); 
相關問題