我是新来的android,我很难理解如何将值从片段传递到另一个片段。我已经读过其他类似的线程,但我似乎无法做到。我有一个datepicker片段,我需要发送一些数据到另一个片段(itemfragment)。我在日期选择器片段MainActivity有这个如何将值从一个片段传递到另一个片段
@Override
public void onDateSet(DatePicker view, int year, int month, int date) {
calendar.set(year, month + 1, date);
int selDay = view.getDayOfMonth();
int selMon = view.getMonth();
int selYear = view.getYear();
//set calendar to selected date
Calendar c = Calendar.getInstance();
c.set(selDay, selMon, selYear);
c.add(Calendar.DATE, -1);
Long twentyfourhrs = c.getTimeInMillis();
}
public interface sendValue{
void sendData(Long twentyfourhrs);
}
sendValue sv;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
sv = (sendValue) activity;
}
catch (ClassCastException e){
throw new ClassCastException("implement sendValue method");
}
}
然后在ItemFragment
Long reminder24;
public void setArguments(Bundle bundle){
super.setArguments(bundle);
reminder24 = bundle.getLong("24", twentyfourhrs);
}
AdapterView.OnItemSelectedListener listener = new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if...{
...}
else{
if (reminder.equals("24 hours")) {
makeToast(reminder + " from " + selected_date + " is " + reminder24);
public class MainActivity extends AppCompatActivity implements DatePickerFragment.sendValue{
@Override
public void sendData(Long twentyfourhrs) {
Bundle bundle = new Bundle();
bundle.putLong("24", twentyfourhrs);
ItemFragment if = new ItemFragment();
if.setArguments(bundle);
}
我不知道我所做的是正确的或没有,但在祝酒reminder24来到返回为空。我做错了什么?
[实例化新Android碎片的最佳做法](ht tp://stackoverflow.com/questions/9245408/best-practice-for-instantiating-a-new-android-fragment) –
我发现了一个适用于我的解决方案http://stackoverflow.com/a/34993646/5563156 –
好的。我没有看到答案与这里的不同,或者我链接到 –