我目前有一个带有CalendarView的活动,我希望用户从CalendarView中选择要传递给下一个片段的日期,从而日期将显示在TextView中。我已经查看了所有内容,但我不知道如何将日期提取到字符串中,然后在活动将意图传递到的片段中再次检索它。
我试着参考这个答案:Android CalendarView: How do I get the date in correct format? 我设法在LogCat中显示日期,但它没有传递给片段。如果可能的话,有人可以告诉我如何重新调整代码以将其传递给片段吗? 非常感谢你们!
答案 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();