我遇到了面向对象编程的问题。我有一个DatePicker,我在DateSettings.java中设置值,我试图获取主要活动中的数据。我使用eventButton只是为了测试我是否得到了数据。这里是gitHub文件: https://github.com/azatgoktas/nekadarkaldi
答案 0 :(得分:1)
这里不需要不同的java文件。我想你不想从datepicker对象中获取日期。 首先创建一个DatepickeDialog然后设置监听器。您将在onDateSet()方法中获取日期。
private void showStartDatePicker() {
Calendar startDateCalendar = Calendar.getInstance();
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), startDatePickerListener, startDateCalendar
.get(Calendar.YEAR), startDateCalendar.get(Calendar.MONTH),
startDateCalendar.get(Calendar.DAY_OF_MONTH));
DatePicker datePicker = datePickerDialog.getDatePicker();
datePickerDialog.show();}
datepicker的监听器:
private final DatePickerDialog.OnDateSetListener startDatePickerListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
startDateCalendar.set(Calendar.YEAR, year);
startDateCalendar.set(Calendar.MONTH, monthOfYear);
startDateCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
// your code here
}};
答案 1 :(得分:0)
Mate,有很多方法可以在不同的活动之间传输数据。你应该自己阅读它,但最常见的两种方法是通过Intents 和SharedPreferences。
在你提出更多问题之前再研究一下。
答案 2 :(得分:0)
有很多方法可以将事件对象传递给MainActivity。一种方法是,创建一个类如下
public class Example {
// sharedInstance
private static Example sharedInstance = new Example();
// to store/ pass events
ArrayList<Events> eventsArrayList = new ArrayList<>();
// private constructor
private Example() {
}
// get sharedInstance
public static Example getSharedInstance() {
return sharedInstance;
}
public void addToEvents(Events events) {
eventsArrayList.add(events);
}
}
创建事件对象Example.getSharedInstance().addToEvents(event);
后,在您的DateSettings中
然后在您的MainActivity中,您可以获得此事件对象
eventButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//JUST FOR TESTİNG
event = Example.getSharedInstance().eventsArrayList.get(0);
Toast.makeText(getApplicationContext(),event.getDay() + ". day", Toast.LENGTH_SHORT).show();
}
});