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

时间:2016-02-06 08:10:49

标签: android date datepicker calendar

我想将变量年,月和日传递给另一个Activity。

我该怎么做?

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();
    }
};

这就是我启动显示CalendarView和DatePicker

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

2 个答案:

答案 0 :(得分:2)

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

首先创建一个pojo类来保存您想要传递给下一个活动的数据。

创建该pojo类的对象并将其放在您在此处创建的intent对象中:

Intent i = new Intent(MainActivity.this,CalendarView.class);
        startActivity(i);

,您的代码现在应如下所示:

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

就是这样。确保你的pojo类实现了java的Serializable接口。

答案 1 :(得分:0)

活动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);

活动2:

 Intent mIntent = getIntent();
 int yrr= mIntent.getIntExtra("year", 0);
 int monthh= mIntent.getIntExtra("Month", 0);