2015-02-10 30 views
0

有兩個活動: 在一個活動中,我使用DatePicker更改日期。 這是我已經使用的代碼:Android DatePicker,如何

public class DataTimePicker extends Activity { 
    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     Calendar calendar = Calendar.getInstance(); 
     calendar.set(year, monthOfYear, dayOfMonth); 
     SimpleDateFormat format = new SimpleDateFormat("yyyyƒÍMM‘¬dd»’ HH:mm"); 
     Toast.makeText(DataTimePicker.this, 
       format.format(calendar.getTime()), Toast.LENGTH_SHORT) 
       .show(); 
    } 
} 

然而,當我踏入另一個活動(主acivity),以顯示日期,我發現的時間沒有變化,依然是在當前日期:

public class MainActivity extends Activity { 

Calendar c = Calendar.getInstance(); 
    text_date.setText("You choose:"+ c.get(Calendar.YEAR)+c.get(Calendar.MONTH)+c.get(Calendar.DAY_OF_MONTH)); 
} 

您能告訴我如何處理這個問題,我想在第二個活動(MainActivity)中顯示更改日期。

+0

您必須使用Intent.putExtra(「key」,value);'for sen將數據從一個活動轉移到另一個活動。 – hrskrs 2015-02-10 13:30:32

+0

我是一個新手,對此有一些代碼!謝謝! – 2015-02-10 13:38:10

回答

0

我不能添加評論..所以我會幫助你在這裏

你必須選擇的日期傳遞給你的第二個活動。在上面的代碼中,您每次只能獲取當前日期。

您可以使用prefferences,intent.putExtra(鍵,值),或從你的第二個活動追加一個變量...

+0

我是這個新手,你有一些關於這個的代碼!謝謝! - – 2015-02-10 13:38:32

+0

當然:在你的第一個活動中使用它來存儲你的日期:SharedPreferences設置= PreferenceManager.getDefaultSharedPreferences(YOURACTIVITY.this); \t \t \t \t SharedPreferences.Editor editor = settings.edit(); \t \t \t \t editor.putString(「new_date」,var_date); \t \t \t \t editor.commit();並在第二個活動中使用:SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(YOURSECONDACT.this); \t String var_date = prefs.getString(「new_date」,null); – Huliganul 2015-02-10 13:42:20

+0

如果我的評論解決方案幫助你,請點擊接受我的解決方案關閉主題...或投票.. – Huliganul 2015-02-10 13:44:06

0

這裏的主要問題是,你應該知道,Calendar.getInstance()不是Singleton,它返回每次調用它時都會有一個新實例。

所以從一個Activity的對象傳遞給另外一個,你可以檢查這個答案:Dynamically loading data to a new view

+0

提前致謝! – 2015-02-10 13:48:36

+0

@KeTian如果我的解釋有幫助,你可以......享受它。 #lol – Gorcyn 2015-02-10 14:06:19

1

它應該是這樣的(注意代碼不進行測試)

public class DataTimePicker extends Activity { 
    public void onDateChanged(DatePicker view, int year, 

      int monthOfYear, int dayOfMonth) { 
     Calendar calendar = Calendar.getInstance(); 
     calendar.set(year, monthOfYear, dayOfMonth); 
     SimpleDateFormat format = new SimpleDateFormat(
       "yyyyƒÍMM‘¬dd»’ HH:mm"); 
     Intent i = new Intent(DataTimePicker.this, MainActivity.class); 
    i.putExtra("YOUR_DATA", String.valueOf(format.format(calendar.getTime()))); 
    } 

} 

並在MainActivity類中做類似的操作:

Bundle extras = getIntent().getExtras(); 
if(extras == null) { 
    newString= null; 
} else { 
    newString= extras.getString("YOUR_DATA"); 
} 
+0

在此先感謝! – 2015-02-10 13:47:56

+0

好的!沒問題!只是在等待它!我現在要回家了,明天我會給每個答案投票! – 2015-02-10 13:52:41