我正在Android Studio中处理日历项目。当我点击日期时,它会打开一个新的活动。问题是如果已经选择了一个日期(比如当你打开一个日历时,你可以看到当前日期已被选中),当我点击它时,它没有给我回复。我怎么能改变这个。当我在Android虚拟设备中测试应用程序时,这不是问题,但是当我在手机中安装应用程序时,出现了这个问题。
检查我提供的照片,我选择的日期没有给出回复,但是当我在AVD上测试它时,如果我点击选定的日期,它会给我回复。
这是我的方法代码,它的工作原理如下,它首先检查在选定的日期是否保存了任何事件。如果是,那么它会打开一个显示事件的警告框,否则它会打开一个我可以保存事件的活动
calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(@NonNull CalendarView calendarView, int i, int i1, int i2) {
date = i2 + "" + i1 + "" + i;
Date = Integer.parseInt(date);
Log.e(TAG,"int date="+Date+"");
Log.e(TAG,"string date="+date+"");
//firstly check if an entry exists for the current date.
Cursor res = myDb.getAllData();
while(res.moveToNext()) {
if (res.getInt(0) == Date) { //only runs if it find the id for this date.
StringBuffer buffer = new StringBuffer();
buffer.append("Id :" + res.getString(0) + "\n");
buffer.append("Event Name :" + res.getString(1) + "\n");
buffer.append("Event Location :" + res.getString(2) + "\n");
buffer.append("Event Discription :" + res.getString(3) + "\n\n");
//when an id is present for event, than there must be an entry for attendees, So search by date(id) for attendees.
Cursor cursor = myDb2.getAllData();
while(cursor.moveToNext()) {
String test=cursor.getInt(0)+"";
if (test.contains(date)) {
Log.e(TAG,"it reached here");
buffer.append("Event Attendee :" + cursor.getString(1) + "\n\n");
}
}
// show message
showMessage("Data", buffer.toString());
return;
}
}
//if no entry is found then pass the id as Date and shift to activity_date_selected activity ).
intent = new Intent(MainActivity.this, dateSelected.class);
intent.putExtra("date message", Date);
intent.putExtra("day message", i2);
intent.putExtra("month message", i1);
intent.putExtra("year message", i);
startActivity(intent);
}
});
}
请不要投票我的问题。我是stackoverflow和编程的新手。任何形式的帮助都会有用。