mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
show a month/year picker on clicking on the month
This commit is contained in:
@@ -19,7 +19,8 @@ import butterknife.BindDimen;
|
|||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import butterknife.OnClick;
|
import butterknife.OnClick;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity implements MyDatePickerDialog.DatePickedListener {
|
||||||
|
public static final String DATE = "date";
|
||||||
private static final String DATE_PATTERN = "ddMMYYYY";
|
private static final String DATE_PATTERN = "ddMMYYYY";
|
||||||
private static final String YEAR_PATTERN = "YYYY";
|
private static final String YEAR_PATTERN = "YYYY";
|
||||||
|
|
||||||
@@ -118,6 +119,15 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
fillCalendar();
|
fillCalendar();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OnClick(R.id.table_month)
|
||||||
|
public void pickMonth() {
|
||||||
|
final MyDatePickerDialog dialog = new MyDatePickerDialog();
|
||||||
|
final Bundle bundle = new Bundle();
|
||||||
|
bundle.putString(DATE, targetDate.toString());
|
||||||
|
dialog.setArguments(bundle);
|
||||||
|
dialog.show(getSupportFragmentManager(), "datepicker");
|
||||||
|
}
|
||||||
|
|
||||||
private String getMonthName() {
|
private String getMonthName() {
|
||||||
final String[] months = new DateFormatSymbols().getMonths();
|
final String[] months = new DateFormatSymbols().getMonths();
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
@@ -130,4 +140,10 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDatePicked(DateTime dateTime) {
|
||||||
|
targetDate = dateTime;
|
||||||
|
fillCalendar();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,52 @@
|
|||||||
|
package calendar.simplemobiletools.com;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.v4.app.DialogFragment;
|
||||||
|
import android.support.v7.app.AlertDialog;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.DatePicker;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
|
import org.joda.time.DateTime;
|
||||||
|
|
||||||
|
public class MyDatePickerDialog extends DialogFragment {
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
|
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||||
|
final View view = getActivity().getLayoutInflater().inflate(R.layout.date_picker, null);
|
||||||
|
final DatePicker datePicker = (DatePicker) view.findViewById(R.id.date_picker);
|
||||||
|
hideDayPicker(datePicker);
|
||||||
|
|
||||||
|
final Bundle bundle = getArguments();
|
||||||
|
if (bundle != null && bundle.containsKey(MainActivity.DATE)) {
|
||||||
|
final DateTime dateTime = new DateTime(bundle.getString(MainActivity.DATE));
|
||||||
|
datePicker.init(dateTime.getYear(), dateTime.getMonthOfYear() - 1, 1, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.setView(view);
|
||||||
|
view.findViewById(R.id.date_picker_ok).setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
final DatePickedListener listener = (DatePickedListener) getActivity();
|
||||||
|
final int month = datePicker.getMonth() + 1;
|
||||||
|
final int year = datePicker.getYear();
|
||||||
|
listener.onDatePicked(new DateTime().withMonthOfYear(month).withYear(year));
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return builder.create();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void hideDayPicker(DatePicker datePicker) {
|
||||||
|
final LinearLayout ll = (LinearLayout) datePicker.getChildAt(0);
|
||||||
|
final LinearLayout ll2 = (LinearLayout) ll.getChildAt(0);
|
||||||
|
ll2.getChildAt(0).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface DatePickedListener {
|
||||||
|
void onDatePicked(DateTime dateTime);
|
||||||
|
}
|
||||||
|
}
|
@@ -22,6 +22,8 @@
|
|||||||
android:id="@+id/table_month"
|
android:id="@+id/table_month"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_toLeftOf="@+id/right_arrow"
|
||||||
|
android:layout_toRightOf="@+id/left_arrow"
|
||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
android:paddingBottom="@dimen/activity_margin"
|
android:paddingBottom="@dimen/activity_margin"
|
||||||
android:paddingTop="@dimen/activity_margin"
|
android:paddingTop="@dimen/activity_margin"
|
||||||
@@ -47,7 +49,6 @@
|
|||||||
android:layout_below="@+id/table_month"
|
android:layout_below="@+id/table_month"
|
||||||
android:layout_marginBottom="@dimen/activity_margin"
|
android:layout_marginBottom="@dimen/activity_margin"
|
||||||
android:layout_marginTop="@dimen/activity_margin"
|
android:layout_marginTop="@dimen/activity_margin"
|
||||||
android:gravity="center">
|
android:gravity="center"/>
|
||||||
|
|
||||||
</TableLayout>
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
23
app/src/main/res/layout/date_picker.xml
Normal file
23
app/src/main/res/layout/date_picker.xml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:gravity="center_horizontal">
|
||||||
|
|
||||||
|
<DatePicker
|
||||||
|
android:id="@+id/date_picker"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:calendarViewShown="false"
|
||||||
|
android:datePickerMode="spinner"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/date_picker_ok"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignLeft="@id/date_picker"
|
||||||
|
android:layout_alignRight="@id/date_picker"
|
||||||
|
android:layout_below="@id/date_picker"
|
||||||
|
android:text="OK"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
Reference in New Issue
Block a user