如何将日历中的日期传递给其他活动[Android]
问题描述:
我无法将日历从日历传递到其他活动。这不是我想要显示的当前日期,而是用户在我编码的日历上选择的日期。
以下是我的代码。如何将日历中的日期传递给其他活动[Android]
@Override
public void onClick(View view)
{
String date_month_year = (String)view.getTag();
selectedDayMonthYearButton.setText(new StringBuilder().append("Selected:").append(date_month_year));
Intent k = new Intent(Calendar_Event.this, Create_Events.class);
startActivity(k);
try
{
Date parsedDate = dateFormatter.parse(date_month_year);
Log.d(tag, "Parsed Date: " + parsedDate.toString());
}
catch(ParseException e)
{
e.printStackTrace();
}
}
public int getCurrentDayOfMonth()
{
return currentDayOfMonth;
}
private void setCurrentDayOfMonth(int currentDayOfMonth)
{
this.currentDayOfMonth = currentDayOfMonth;
}
public void setCurrentWeekDay(int currentWeekDay)
{
this.currentWeekDay = currentWeekDay;
}
public int getCurrentWeekDay()
{
return currentWeekDay;
}
}//end GridCellAdapter
我试着将选定的onClick日期传递给这个类链接到的下一个活动。
任何帮助将不胜感激,谢谢你!
答
使用Intent.putExtra(String date)
将活动从一个活动传递到另一个活动。更改按钮单击代码作为Calendar_Event.class:
在Calendar_Event活动:
//Create new Intent Object, and specify class
Intent intent = new Intent();
intent.setClass(Calendar_Event.this,Create_Events.class);
intent.putExtra("passdate","Date_var_here");
Calendar_Event.this.startActivity(intent);
在Create_Events活动:
//obtain Intent Object send from SenderActivity
Intent intent = this.getIntent();
/* Obtain String from Intent */
if(intent !=null)
{
String strdata = intent.getExtras().getString("passdate");
// DO SOMETHING HERE
}
else
{
// DO SOMETHING HERE
}
答
考虑到日历变量转换为长致电getTimeInMillis()
/* GetDateActivity.java */
Intent intent = new Intent();
Calendar myDate = Calendar.getInstance();
myDate.set(Calendar.YEAR, 1970);
myDate.set(Calendar.MONTH, 1);
myDate.set(Calendar.DAY_OF_MONTH, 1);
intent.putExtra("myDateKey", myDate.getTimeInMillis());
setResult(RESULT_OK, intent);
// Terminate current activity
finish();
然后,内部活动,要求startActivityForResult(intent)
,即MainActivity.java
public static final int REQUEST_DATE_CODE = 777;
...
Intent i = new Intent(MainActivity.class, GetDateActivity.class);
startActivityForResult(i, REQUEST_DATE_CODE);
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_DATE_CODE:
if (resultCode == RESULT_OK && data != null) {
Calendar myDate = Calendar.getInstance();
myDate.setTimeInMillis(extras.getLong("myDateKey"));
Date date = myDate.getTime();
SimpleDateFormat simpleDateFormatter = new SimpleDateFormat("EEE, MMM d, ''yy", Locale.getDefault());
Log.d(tag, "Parsed Date: " + simpleDateFormatter.format(date));
}
break;
}
}
嘿它的工作!非常感谢 (: – Preeyah 2012-08-02 04:22:35