L
Lybrial
Neues Mitglied
- 0
Hallo,
ich habe versucht einen eigenen Date-Picker zu implementieren, da man
den vorhanden leider nicht in der Art anpassen kann, dass er aussieht,
wie er von meinem Designer aus aussehen muss, nämlich wie folgt:
Die Tage, Monate und Jahre sollen durch nach oben bzw. nach unten
scrollen veränderbar sein. Hierzu habe ich folgendes Layout geschrieben:
Der Code dazu ist der folgende:
Leider funktioniert das Scrolling des Gesture-Detectors nicht wirklich. Er reagiert nur manchmal. Ich scrolle und scrolle über die Layouts und nichts passiert, und dann plötzlich von jetzt auf gleich gehts wie geschmiert. Dann will ich auf einem anderen Layout scrollen und es geht wieder ewig nicht.
Ich habe leider keine Ahnung was da schief läuft, deshalb muss ich euch um Hilfe bitten.
ich habe versucht einen eigenen Date-Picker zu implementieren, da man
den vorhanden leider nicht in der Art anpassen kann, dass er aussieht,
wie er von meinem Designer aus aussehen muss, nämlich wie folgt:
Die Tage, Monate und Jahre sollen durch nach oben bzw. nach unten
scrollen veränderbar sein. Hierzu habe ich folgendes Layout geschrieben:
Code:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:fillViewport="true"
android:gravity="center" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="20dp"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:background="@drawable/custom_background"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/date_selection_textview_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:gravity="center"
android:textColor="@color/textcolorprimary"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_weight="0.8"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
<TextView
android:id="@+id/date_selection_textview_from"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@color/textcolorprimary" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
</LinearLayout>
<LinearLayout
android:id="@+id/date_selection_layout_from_day"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_weight="1.0"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp" />
</LinearLayout>
<EditText
android:id="@+id/date_selection_edittext_from_day"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/custom_background"
android:gravity="center"
android:inputType="number"
android:maxLines="1"
android:nextFocusDown="@+id/date_selection_edittext_from_month"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="true"
android:textColor="@color/textcolorprimary"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp"
android:rotation="180" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/date_selection_layout_from_month"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_weight="1.0"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp" />
</LinearLayout>
<EditText
android:id="@+id/date_selection_edittext_from_month"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/custom_background"
android:gravity="center"
android:inputType="number"
android:maxLines="1"
android:nextFocusDown="@+id/date_selection_edittext_from_year"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="true"
android:textColor="@color/textcolorprimary"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp"
android:rotation="180" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/date_selection_layout_from_year"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_weight="1.0"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp" />
</LinearLayout>
<EditText
android:id="@+id/date_selection_edittext_from_year"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/custom_background"
android:gravity="center"
android:inputType="number"
android:maxLines="1"
android:nextFocusDown="@+id/date_selection_edittext_to_day"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="true"
android:textColor="@color/textcolorprimary"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp"
android:rotation="180" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_weight="0.8"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="center"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:background="@android:color/darker_gray" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_weight="0.8"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
<TextView
android:id="@+id/date_selection_textview_to"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@color/textcolorprimary" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
</LinearLayout>
<LinearLayout
android:id="@+id/date_selection_layout_to_day"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_weight="1.0"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp" />
</LinearLayout>
<EditText
android:id="@+id/date_selection_edittext_to_day"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/custom_background"
android:gravity="center"
android:inputType="number"
android:maxLines="1"
android:nextFocusDown="@+id/date_selection_edittext_to_month"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="true"
android:textColor="@color/textcolorprimary"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp"
android:rotation="180" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/date_selection_layout_to_month"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_weight="1.0"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp" />
</LinearLayout>
<EditText
android:id="@+id/date_selection_edittext_to_month"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/custom_background"
android:gravity="center"
android:inputType="number"
android:maxLines="1"
android:nextFocusDown="@+id/date_selection_edittext_to_year"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="true"
android:textColor="@color/textcolorprimary"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp"
android:rotation="180" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/date_selection_layout_to_year"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_weight="1.0"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp" />
</LinearLayout>
<EditText
android:id="@+id/date_selection_edittext_to_year"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/custom_background"
android:gravity="center"
android:inputType="number"
android:maxLines="1"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="true"
android:textColor="@color/textcolorprimary"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="2dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/ic_button_arrow"
android:contentDescription="@string/imageview_description"
android:gravity="center"
android:padding="5dp"
android:rotation="180" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_weight="0.8"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/date_selection_button_request"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="10dp"
android:layout_marginEnd="40dp"
android:layout_marginStart="40dp"
android:background="@drawable/custom_positive_button"
android:gravity="center"
android:padding="15dp"
android:text="@string/button_request"
android:textColor="@drawable/custom_positive_button_text_color"
android:textSize="20sp" />
<Button
android:id="@+id/date_selection_button_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="10dp"
android:layout_marginEnd="40dp"
android:layout_marginStart="40dp"
android:background="@drawable/custom_negative_button"
android:gravity="center"
android:padding="15dp"
android:text="@string/button_cancel"
android:textColor="@drawable/custom_negative_button_text_color"
android:textSize="20sp" />
</LinearLayout>
</ScrollView>
Der Code dazu ist der folgende:
Code:
public class DateSelectionDialogFragment extends BaseDialogFragment implements OnClickListener, OnTouchListener, OnGestureListener {
private GestureDetector gestureDetector = null;
private DateSelectionCallback callback = null;
private LinearLayout layoutFromDay = null;
private LinearLayout layoutFromMonth = null;
private LinearLayout layoutFromYear = null;
private LinearLayout layoutToDay = null;
private LinearLayout layoutToMonth = null;
private LinearLayout layoutToYear = null;
private TextView textViewTitle = null;
private TextView textViewFrom = null;
private EditText editTextFromDay = null;
private EditText editTextFromMonth = null;
private EditText editTextFromYear = null;
private TextView textViewTo = null;
private EditText editTextToDay = null;
private EditText editTextToMonth = null;
private EditText editTextToYear = null;
private Button buttonRequest = null;
private Button buttonCancel = null;
public DateSelectionDialogFragment(DateSelectionCallback callback) {
this.callback = callback;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setRetainInstance(true);
this.gestureDetector = new GestureDetector(this.activity, this);
}
@SuppressLint("InflateParams")
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Dialog dialog = new Dialog(this.activity, android.R.style.Theme_Translucent_NoTitleBar);
final View view = this.activity.getLayoutInflater().inflate(R.layout.activity_date_selection_fragment, null);
this.layoutFromDay = (LinearLayout) view.findViewById(R.id.date_selection_layout_from_day);
this.layoutFromDay.setOnTouchListener(this);
this.layoutFromMonth = (LinearLayout) view.findViewById(R.id.date_selection_layout_from_month);
this.layoutFromMonth.setOnTouchListener(this);
this.layoutFromYear = (LinearLayout) view.findViewById(R.id.date_selection_layout_from_year);
this.layoutFromYear.setOnTouchListener(this);
this.layoutToDay = (LinearLayout) view.findViewById(R.id.date_selection_layout_to_day);
this.layoutToDay.setOnTouchListener(this);
this.layoutToMonth = (LinearLayout) view.findViewById(R.id.date_selection_layout_to_month);
this.layoutToMonth.setOnTouchListener(this);
this.layoutToYear = (LinearLayout) view.findViewById(R.id.date_selection_layout_to_year);
this.layoutToYear.setOnTouchListener(this);
this.textViewTitle = (TextView) view.findViewById(R.id.date_selection_textview_title);
this.textViewTitle.setText(this.getResources().getString(R.string.title_activity_measure_data_list));
this.textViewFrom = (TextView) view.findViewById(R.id.date_selection_textview_from);
this.textViewFrom.setText(this.getResources().getString(R.string.text_from));
this.editTextFromDay = (EditText) view.findViewById(R.id.date_selection_edittext_from_day);
this.editTextFromDay.setEnabled(false);
this.editTextFromMonth = (EditText) view.findViewById(R.id.date_selection_edittext_from_month);
this.editTextFromMonth.setEnabled(false);
this.editTextFromYear = (EditText) view.findViewById(R.id.date_selection_edittext_from_year);
this.editTextFromYear.setEnabled(false);
this.textViewTo = (TextView) view.findViewById(R.id.date_selection_textview_to);
this.textViewTo.setText(this.getResources().getString(R.string.text_to));
this.editTextToDay = (EditText) view.findViewById(R.id.date_selection_edittext_to_day);
this.editTextToDay.setEnabled(false);
this.editTextToMonth = (EditText) view.findViewById(R.id.date_selection_edittext_to_month);
this.editTextToMonth.setEnabled(false);
this.editTextToYear = (EditText) view.findViewById(R.id.date_selection_edittext_to_year);
this.editTextToYear.setEnabled(false);
this.buttonRequest = (Button) view.findViewById(R.id.date_selection_button_request);
this.buttonRequest.setOnClickListener(this);
this.buttonCancel = (Button) view.findViewById(R.id.date_selection_button_cancel);
this.buttonCancel.setOnClickListener(this);
this.initViews();
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
dialog.getWindow().setBackgroundDrawable(Helper.loadDrawableFromFile(this.getResources(), Helper.getBackgroundBlurredImagePath()));
dialog.getWindow().setContentView(view);
final WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.height = WindowManager.LayoutParams.MATCH_PARENT;
params.gravity = Gravity.CENTER;
dialog.setCanceledOnTouchOutside(true);
return dialog;
}
@Override
public void onDestroyView() {
if (this.getDialog() != null && this.getRetainInstance()) {
this.getDialog().setDismissMessage(null);
}
super.onDestroyView();
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onClick(View view) {
switch(view.getId()) {
case R.id.date_selection_button_request : {
this.performSetDate();
} break;
case R.id.date_selection_button_cancel : {
this.performCancel();
} break;
}
}
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
motionEvent.setSource(view.getId());
Log.v("DateSelectionDialogFragment", "On Touch Called");
return this.gestureDetector.onTouchEvent(motionEvent);
}
@Override
public boolean onDown(MotionEvent motionEvent) {
return true;
}
@Override
public boolean onFling(MotionEvent motionEvent1, MotionEvent motionEvent2, float distanceX, float distanceY) {
return true;
}
@Override
public void onLongPress(MotionEvent motionEvent) {
return;
}
@Override
public boolean onScroll(MotionEvent motionEvent1, MotionEvent motionEvent2, float velocityX, float velocityY) {
LinearLayout sourceView = this.getSourceView(motionEvent1.getSource());
Log.v("DataSelectionDialogFragment", "OnScroll Called");
if(sourceView != null) {
if(motionEvent1.getY() > motionEvent2.getY() && velocityY > 20) {
Log.v("DataSelectionDialogFragment", "Scroll Up");
if(sourceView.equals(this.layoutFromDay)) {
int currentValue = Integer.parseInt(this.editTextFromDay.getText().toString());
if(currentValue < 31) {
this.editTextFromDay.setText("" + ++currentValue);
}
} else if(sourceView.equals(layoutToDay)) {
int currentValue = Integer.parseInt(this.editTextToDay.getText().toString());
if(currentValue < 31) {
this.editTextToDay.setText("" + ++currentValue);
}
} else if(sourceView.equals(layoutFromMonth)) {
int currentValue = Integer.parseInt(this.editTextFromMonth.getText().toString());
if(currentValue < 12) {
this.editTextFromMonth.setText("" + ++currentValue);
}
} else if(sourceView.equals(layoutToMonth)) {
int currentValue = Integer.parseInt(this.editTextToMonth.getText().toString());
if(currentValue < 12) {
this.editTextToMonth.setText("" + ++currentValue);
}
} else if(sourceView.equals(layoutFromYear)) {
int currentValue = Integer.parseInt(this.editTextFromYear.getText().toString());
this.editTextFromYear.setText("" + ++currentValue);
} else if(sourceView.equals(layoutToYear)) {
int currentValue = Integer.parseInt(this.editTextToYear.getText().toString());
this.editTextToYear.setText("" + ++currentValue);
}
} else if(motionEvent1.getY() < motionEvent2.getY() && velocityY < 20) {
Log.v("DataSelectionDialogFragment", "Scroll Down");
if(sourceView.equals(this.layoutFromDay)) {
int currentValue = Integer.parseInt(this.editTextFromDay.getText().toString());
if(currentValue > 1) {
this.editTextFromDay.setText("" + --currentValue);
}
} else if(sourceView.equals(layoutToDay)) {
int currentValue = Integer.parseInt(this.editTextToDay.getText().toString());
if(currentValue > 1) {
this.editTextToDay.setText("" + --currentValue);
}
} else if(sourceView.equals(layoutFromMonth)) {
int currentValue = Integer.parseInt(this.editTextFromMonth.getText().toString());
if(currentValue > 1) {
this.editTextFromMonth.setText("" + --currentValue);
}
} else if(sourceView.equals(layoutToMonth)) {
int currentValue = Integer.parseInt(this.editTextToMonth.getText().toString());
if(currentValue > 1) {
this.editTextToMonth.setText("" + --currentValue);
}
} else if(sourceView.equals(layoutFromYear)) {
int currentValue = Integer.parseInt(this.editTextFromYear.getText().toString());
if(currentValue > 1970) {
this.editTextFromYear.setText("" + --currentValue);
}
} else if(sourceView.equals(layoutToYear)) {
int currentValue = Integer.parseInt(this.editTextToYear.getText().toString());
if(currentValue > 1970) {
this.editTextToYear.setText("" + --currentValue);
}
}
}
}
return true;
}
@Override
public void onShowPress(MotionEvent motionEvent) {
return;
}
@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
return true;
}
private void initViews() {
final Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = (calendar.get(Calendar.MONTH) + 1);
int day = calendar.get(Calendar.DAY_OF_MONTH);
this.editTextFromDay.setText("" + day);
this.editTextFromMonth.setText("" + month);
this.editTextFromYear.setText("" + (year - 1));
this.editTextToDay.setText("" + day);
this.editTextToMonth.setText("" + month);
this.editTextToYear.setText("" + year);
}
private void performSetDate() {
String fromYear = this.editTextFromYear.getText().toString();
String fromMonth = this.editTextFromMonth.getText().toString();
String fromDay = this.editTextFromDay.getText().toString();
String toYear = this.editTextToYear.getText().toString();
String toMonth = this.editTextToMonth.getText().toString();
String toDay = this.editTextToDay.getText().toString();
String fromDate = fromDay + "." + fromMonth + "." + fromYear;
String toDate = toDay + "." + toMonth + "." + toYear;
if(Validation.validateDate(fromDate) && Validation.validateDate(toDate)) {
this.callback.onDateSelected(fromDate, toDate);
this.dismiss();
} else {
Log.v("DateSelectionDialogFragment", "Invalid Date");
}
}
private void performCancel() {
this.dismiss();
}
private LinearLayout getSourceView(int source) {
switch(source) {
case R.id.date_selection_layout_from_day:
return this.layoutFromDay;
case R.id.date_selection_layout_from_month:
return this.layoutFromMonth;
case R.id.date_selection_layout_from_year:
return this.layoutFromYear;
case R.id.date_selection_layout_to_day:
return this.layoutToDay;
case R.id.date_selection_layout_to_month:
return this.layoutToMonth;
case R.id.date_selection_layout_to_year:
return this.layoutToYear;
}
return null;
}
}
Leider funktioniert das Scrolling des Gesture-Detectors nicht wirklich. Er reagiert nur manchmal. Ich scrolle und scrolle über die Layouts und nichts passiert, und dann plötzlich von jetzt auf gleich gehts wie geschmiert. Dann will ich auf einem anderen Layout scrollen und es geht wieder ewig nicht.
Ich habe leider keine Ahnung was da schief läuft, deshalb muss ich euch um Hilfe bitten.