I have implemented code for android times square, but I am unable to detect the event when the month change. I have to highlight multiple range of dates from months
.
This is the way I have done but, I am unable to detect when month got changed while scrolling
code:
public class Calender extends Activity implements OnDateChangeListener,CalendarCellDecorator {
String BOOKING_URL="http://www.example.com/app/webroot/mobile/booking.php";
ArrayList<String>list=new ArrayList<String>();
CalendarPickerView calender;
ArrayList<Date> dates = new ArrayList<Date>();
Calendar lastYear,nextYear;
Calendar today;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calender);
getActionBar().setTitle("CALENDER");
getActionBar().setIcon(R.drawable.back);
getActionBar().setDisplayOptions(getActionBar().getDisplayOptions()| ActionBar.DISPLAY_SHOW_CUSTOM);
ImageView imageView = new ImageView(getActionBar().getThemedContext());
imageView.setScaleType(ImageView.ScaleType.CENTER);
imageView.setImageResource(R.drawable.manu_btn);
ActionBar.LayoutParams layoutParams = new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT,ActionBar.LayoutParams.WRAP_CONTENT, Gravity.RIGHT| Gravity.CENTER_VERTICAL);
layoutParams.rightMargin = 40;
imageView.setLayoutParams(layoutParams);
getActionBar().setCustomView(imageView);
centerActionBarTitle();
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
nextYear = Calendar.getInstance();
nextYear.add(Calendar.YEAR, 2);
lastYear= Calendar.getInstance();
lastYear.add(Calendar.YEAR, -2);
today = Calendar.getInstance();
calender = (CalendarPickerView) findViewById(R.id.calendar);
calender.setOnScrollListener(new OnScrollListener() {
private int mLastFirstVisibleItem;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if(mLastFirstVisibleItem<firstVisibleItem)
{
Log.d("SCROLLING DOWN","TRUE");
}
if(mLastFirstVisibleItem>firstVisibleItem)
{
Log.d("SCROLLING UP","TRUE");
}
mLastFirstVisibleItem=firstVisibleItem;
}
});
calender1.init(lastYear.getTime(), nextYear.getTime());//.inMode(SelectionMode.RANGE);
new MyAsyncTask(BOOKING_URL).execute();
}
.....
try {
JSONArray array=new JSONArray(response);
for (int i = 0; i < array.length(); i++) {
JSONObject json=array.getJSONObject(i);
list.add(json.getString("fromDate")+" "+json.getString("toDate"));
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
TimeZone gmt = TimeZone.getTimeZone("GMT");
sdf.setTimeZone(gmt);
sdf.setLenient(false);
try {
Date date = sdf.parse(list.get(0).split(" ")[0]);
Date date1 = sdf.parse(list.get(0).split(" ")[1]);
System.out.println(date);
dates.add(date);
dates.add(date1);
} catch (Exception e) {
e.printStackTrace();
}
calendar.init(lastYear.getTime(), nextYear.getTime()).inMode(SelectionMode.RANGE).withSelectedDates(dates);
} catch (JSONException e) {
e.printStackTrace();
}
....
@Override
public void decorate(CalendarCellView calendarCellView, Date date) {
Log.d("TAG", "a"+date);
if (date.getDate() < 5) {
calendarCellView.setBackgroundResource(R.drawable.side_testi);
} else {
calendarCellView.setBackgroundResource(R.drawable.side_book);
}
}
json response:
[
{
"fromDate": "2014-03-03",
"toDate": "2014-03-07",
"name": "Anurag",
"email": "[email protected]",
"phone": "2147483647",
"address": "Y-51, 3rd Floor, Sector 12",
"comment": "I wanna view here."
},
{
"fromDate": "2014-04-09",
"toDate": "2014-04-09",
"name": "Dana Edgar",
"email": "[email protected]",
"phone": "0",
"address": "BHM Construction Inc.\r\n522 Walnut Avenue\r\nVallejo, CA 94592",
"comment": "Primary guest will be Jeffery Mazet and his contact phone number is (530)601-0570. His email is [email protected]."
},
{
"fromDate": "2015-02-09",
"toDate": "2015-02-25",
"name": "Ghfb",
"email": "[email protected]",
"phone": "2147483647",
"address": "\nGffbbnn",
"comment": "Dhgbngh"
},
{
"fromDate": "2015-02-09",
"toDate": "2015-02-25",
"name": "Ghfb",
"email": "[email protected]",
"phone": "2147483647",
"address": "\nGffbbnn",
"comment": "Dhgbngh"
},
{
"fromDate": "2015-06-04",
"toDate": "2015-09-04",
"name": "rewr",
"email": "[email protected]",
"phone": "2147483647",
"address": "cbvcb",
"comment": "vnbvbbm"
}
]
layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical" >
<com.squareup.timessquare.CalendarPickerView
android:id="@+id/calendar"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="16dp"
android:scrollbarStyle="outsideOverlay"
android:clipToPadding="false"
android:background="#FFFFFF"
/>
</LinearLayout>
issues raised
It seems I am missing something. Any suggestion is appreciated.