onClick序列的问题

时间:2017-06-21 09:51:15

标签: java android android-activity calendarview

由于我的经验不足,我正在使用Android Studio并遇到一些问题。我有一个ActivityCalendarViewButton。在按下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);
                }
            });

        }
    });

请告诉我应该以什么方式编码。 感谢帮助,谢谢!!

2 个答案:

答案 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