如何将从CalendarView中选择的日期(默认为当前)传递到下一个活动?

时间:2015-06-10 18:02:48

标签: java android xml

我目前有一个带有CalendarView的活动,我希望用户从CalendarView中选择要传递给下一个片段的日期,从而日期将显示在TextView中。我已经查看了所有内容,但我不知道如何将日期提取到字符串中,然后在活动将意图传递到的片段中再次检索它。

我试着参考这个答案:Android CalendarView: How do I get the date in correct format? 我设法在LogCat中显示日期,但它没有传递给片段。如果可能的话,有人可以告诉我如何重新调整代码以将其传递给片段吗? 非常感谢你们!

2 个答案:

答案 0 :(得分:0)

如果您在MainActivity中保留对Fragment的引用,则可以像对待任何其他对象一样与其进行交互。一个例子:

MainActivity.java

MyFragment my_fragment;
...
public void onCreate() {
    ...
    my_fragment = new MyFragment();
    ...
}

public void sendDateToFragment(Calendar date) {
    my_fragment.setDate(date);
}

MyFragment.java

Calendar calendar;
...
public void setDate(Calendar date) {
    // You can choose any type of object to accept,
    // this is just an example.
    calendar = date;
}

希望这有帮助。

答案 1 :(得分:0)

你可以通过Bundle处理它:

public void send(int day, int month, int year){
    Bundle date = new Bundle();
    date.putInt("Day", day);
    date.putInt("Month", month);
    date.putInt("Year", year);
    Intent in=new Intent(Activity.this,SecondActivity.class);
    in.putExtras(date);
    startActivity(in);
}

并在第二项活动中:

public Date get(){
    Bundle second = getIntent().getExtras();
    return new Date(second.getInt("Year"),
        second.getInt("Month"),second.getInt("Day"));
}

它会返回您的日期,您可以拨打第二个活动Date date = get();