如何从以下程序中获取所选日期?

时间:2016-06-30 09:41:35

标签: android

我找到了以下程序: http://www.android-examples.com/get-selected-date-from-calendarview-in-android/

...

public class MainActivity extends Activity {

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

calender = (CalendarView)findViewById(R.id.calendarView1);
textview = (TextView)findViewById(R.id.textView1);

calender.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {

    @Override
    public void onSelectedDayChange(CalendarView view, int year, int month,
                                int dayOfMonth) {
    // TODO Auto-generated method stub

        textview.setText("Date is : " + dayOfMonth +" / " + (month+1) + " / " + year);

    }
    });
}
}

该行:

textview.setText("Date is : " + dayOfMonth +" / " + (month+1) + " / " + year);

在屏幕上显示所选日期。

我有什么方法可以获得用户选择并在main activity中使用它的日期吗?

4 个答案:

答案 0 :(得分:0)

您已收到日期详情onSelectedDayChange(CalendarView view, int year, int month,int dayOfMonth)

您可以直接在此处使用它,因为您已经在活动中。

答案 1 :(得分:0)

我想你需要在IONotificationPortRef方法范围之外使用它,为此你可以简单地创建一个具有类级别范围的全局对象,并在调用onSelectedDayChange之后设置值,如下所示:

onSelectedDayChange

您可以在活动内的任何位置使用public class MainActivity extends Activity { CalendarView calender; TextView textview; TextView textview2; int selectedYear; int selectedMonth; int selectedDay; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); calender = (CalendarView)findViewById(R.id.calendarView1); textview = (TextView)findViewById(R.id.textView1); textview2 = (TextView)findViewById(R.id.textView2); calender.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { @Override public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) { // TODO Auto-generated method stub selectedYear = year; selectedMonth = month; selectedDay = dayOfMonth; textview.setText("Date is : " + dayOfMonth +" / " + (month+1) + " / " + year); showSelectedDate(selectedYear, selectedMonth, selectedDay ); } }); } public void showSelectedDate(int selectedYear, int selectedMonth, int selectedDay){ textview2.setText("Date is : " + selectedDay +" / " + (selectedMonth +1) + " / " + selectedYear ); } } selectedYearselectedMonth

答案 2 :(得分:0)

您可以在主活动中创建日,月和年的全局变量,并为onSelectedDayChange侦听器内的变量赋值,因为您可以在整个类中使用这些变量。

答案 3 :(得分:0)

  1. 声明一个全局String变量。
  2. 为您在
  3. 下面执行TextView.setText的变量赋值

    例如: - 字符串日期;

    日期= dayOfMonth +“/”+(月+ 1)+“/”+年;

    现在您可以在MainActivity类中使用日期。