onClick 序列的问题
Issues with onClick sequence
我在使用 Android Studio 和 运行 时遇到了一些问题,这是由于我缺乏经验。我有一个 Activity
和一个 CalendarView
和一个 Button
。按 Button
后,在 CalendarView
中编辑的日期 select 将在下一个 Activity
中设置为 EditText
。
这行得通,但方式很奇怪。通常,我会 select 来自 CalendarView
的日期,然后当我单击 Button
时,Intent
将开始,但现在完全相反;我必须单击 Button
,然后选择日期才能启动 Intent 并重定向到另一个页面。
这是我的代码:
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);
}
});
}
});
请告诉我应该用什么方式编码。
感谢您的帮助,谢谢!!
尝试关注
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");
你在按钮的OnClickListener
里面设置了OnDateChangedListener
,所以它只会在你点击按钮后监听。据我了解,您想做这样的事情:
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
。
我在使用 Android Studio 和 运行 时遇到了一些问题,这是由于我缺乏经验。我有一个 Activity
和一个 CalendarView
和一个 Button
。按 Button
后,在 CalendarView
中编辑的日期 select 将在下一个 Activity
中设置为 EditText
。
这行得通,但方式很奇怪。通常,我会 select 来自 CalendarView
的日期,然后当我单击 Button
时,Intent
将开始,但现在完全相反;我必须单击 Button
,然后选择日期才能启动 Intent 并重定向到另一个页面。
这是我的代码:
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);
}
});
}
});
请告诉我应该用什么方式编码。 感谢您的帮助,谢谢!!
尝试关注
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");
你在按钮的OnClickListener
里面设置了OnDateChangedListener
,所以它只会在你点击按钮后监听。据我了解,您想做这样的事情:
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
。