Android 将datepicker年、日、月变量传递给另一个活动

Android 将datepicker年、日、月变量传递给另一个活动,android,date,datepicker,calendar,Android,Date,Datepicker,Calendar,我想将变量年、月和日传递给另一个活动 我该怎么做 Button button; int year_x,month_x,day_x; static final int DIALOG_ID = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

我想将变量年、月和日传递给另一个活动

我该怎么做

Button button;
int year_x,month_x,day_x;
static final int DIALOG_ID = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Calendar cal = Calendar.getInstance();
    year_x = cal.get(Calendar.YEAR);
    month_x = cal.get(Calendar.MONTH);
    day_x = cal.get(Calendar.DAY_OF_MONTH);

    showDialogOnButtonClick();
}


public void showDialogOnButtonClick(){

    button = (Button)findViewById(R.id.button);
    button.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showDialog(DIALOG_ID);
                }
            }
    );
}


@Override
protected Dialog onCreateDialog(int id){

    if(id == DIALOG_ID)
        return new DatePickerDialog(this,dpickerListner,year_x,month_x,day_x);
    return null;
}
private DatePickerDialog.OnDateSetListener dpickerListner
        = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        year_x = year;
        month_x = monthOfYear + 1;
        day_x = dayOfMonth;
        Toast.makeText(MainActivity.this,year_x +"/"+ month_x+"/"+day_x,Toast.LENGTH_LONG).show();
    }
};
这就是我如何启动显示日历视图和日期选择器的活动

public void onButtonClick(View view){
    if(view.getId()==R.id.button2)
    {
        Intent i = new Intent(MainActivity.this,CalendarView.class);
        startActivity(i);
    }
}
}

我没有足够的声誉来评论这就是为什么我在这里回答你的问题

因此,首先创建一个pojo类来保存要传递给下一个活动的数据

创建该pojo类的对象,并将其放入您在此处创建的意图对象中:

Intent i = new Intent(MainActivity.this,CalendarView.class);
        startActivity(i);
i、 e您的代码现在应该如下所示:

Intent i = new Intent(MainActivity.this,CalendarView.class);
i.putExtra("data", yourPojoObj);
        startActivity(i);

就这样。确保您的pojo类从java实现可序列化接口。

活动1:

    int yr, month, day, hour;
    public void getCurrentDate() {  //Consider getting date from Device
        Calendar today = Calendar.getInstance();
        yr = today.get(Calendar.YEAR);
        month = today.get(Calendar.MONTH);
        day = today.get(Calendar.DAY_OF_MONTH);
        hour = today.get(Calendar.HOUR_OF_DAY);
    }
Intent i=new Intent(Activity1.this,Activity2.class);
i.putExtra("year", yr);
i.putExtra("Month ", month);
startActvity(i);
 Intent mIntent = getIntent();
 int yrr= mIntent.getIntExtra("year", 0);
 int monthh= mIntent.getIntExtra("Month", 0);
活动2:

    int yr, month, day, hour;
    public void getCurrentDate() {  //Consider getting date from Device
        Calendar today = Calendar.getInstance();
        yr = today.get(Calendar.YEAR);
        month = today.get(Calendar.MONTH);
        day = today.get(Calendar.DAY_OF_MONTH);
        hour = today.get(Calendar.HOUR_OF_DAY);
    }
Intent i=new Intent(Activity1.this,Activity2.class);
i.putExtra("year", yr);
i.putExtra("Month ", month);
startActvity(i);
 Intent mIntent = getIntent();
 int yrr= mIntent.getIntExtra("year", 0);
 int monthh= mIntent.getIntExtra("Month", 0);

欢迎来到StackOverflow!请把瓶盖锁关掉。谢谢。或者,
startActivityForResult
的可能副本用于从CalendarView传回数据,我相信这就是问题中所要求的。谢谢@Mrunalini Pawar的回复。我不知道什么是pojo类,我是编程新手,但我会搜索它,谢谢你的回复。@MJS-Plain Old Java Object=POJOGuyz抱歉,如果我不能立即回复,这可能很有趣,但我对android如此陌生,需要研究答案,希望你能理解guyz。