由于我的经验不足,我正在使用Android Studio并遇到一些问题。我有一个Activity
,CalendarView
和Button
。在按下Button
后,CalendarView
中选择的日期将设置为下一个EditText
的{{1}}。
这很有效,但是很奇怪。通常情况下,我会从Activity
中选择一个日期,然后当我点击CalendarView
Button
时,Intent
会开始,但现在却完全相反;我必须单击Button
,然后选择一个日期以便启动意图并重定向到另一个页面。
这是我的代码:
btnDone1 = (Button) findViewById(R.id.btnDone1);
btnDone1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
calendar1.setOnDateChangeListener(new CalendarView.OnDateChangeListener(){
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth){
String date1 = dayOfMonth + "/" + (month + 1) + "/" + year;
Intent doneD = new Intent(RentStartActivity.this, SearchActivity.class);
doneD.putExtra("Date1", date1);
startActivity(doneD);
}
});
}
});
请告诉我应该以什么方式编码。 感谢帮助,谢谢!!
答案 0 :(得分:1)
尝试以下
String date1;
calendar1.setOnDateChangeListener(new CalendarView.OnDateChangeListener(){
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth){
date1 = dayOfMonth + "/" + (month + 1) + "/" + year;
}
});
btnDone1 = (Button) findViewById(R.id.btnDone1);
btnDone1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Intent doneD = new Intent(RentStartActivity.this, SearchActivity.class);
doneD.putExtra("Date1", date1);
startActivity(doneD);
}
});
在SearchActivity
中获取日期。
Intent intent = getIntent();
String date = intent.getStringExtra("Date1");
答案 1 :(得分:0)
您在按钮的OnDateChangedListener
内设置了OnClickListener
,因此只有在您点击按钮后才能收听。根据我的理解,你想做这样的事情:
btnDone1 = (Button) findViewById(R.id.btnDone1);
calendar1.setOnDateChangeListener(new CalendarView.OnDateChangeListener(){
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth){
btnDone1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
String date1 = dayOfMonth + "/" + (month + 1) + "/" + year;
Intent doneD = new Intent(RentStartActivity.this, SearchActivity.class);
doneD.putExtra("Date1", date1);
startActivity(doneD);
}
});
}
});
此代码在您单击按钮后将所选日期发送到SearchActivity
。