Files
org.ccalm.asdc/app/src/main/java/dbfields/DateTimeText.java
2024-08-19 07:09:45 +05:00

124 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dbfields;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.widget.EditText;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTimeText extends EditText implements fieldDB
{
private String m_Value = null;
public DateTimeText(Context context)
{
super(context);
}
public DateTimeText(Context context, AttributeSet attrs)
{
super(context,attrs);
}
public String getValue(){
return m_Value;
}
public void setValue(String val)
{
m_Value = null; //Присваиваю ниже так как нужно только проверянное значение даты
if(val!=null && !val.equals(""))
{
Date date=null;
try {
date = new Date(Long.parseLong(val)*1000);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //Теперь для простого преобразования в тип даты PostgreSQL дату храню в виде текста в формате "yyyy-MM-dd HH:mm:ss"
m_Value=format.format(date);
} catch (NumberFormatException e) {
}
if(date==null){
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = format.parse(val);
m_Value = val;
} catch (ParseException e) {
}
}
if(date!=null) {
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm"); //Убрал секунды так всё равно то что отображается не соответствует тому что храниться
String str = format.format(date);
setText(str);
}else{
setText("");
}
}else
{
setText("");
}
}
// Класс для сохранения изменений сделаных пользователем при повороте экрана
public static class SavedStateDTT extends BaseSavedState
{
String value = ""; //Не может быть null почемуто вылетает!
SavedStateDTT(Parcelable superState)
{
super(superState);
}
@Override
public void writeToParcel(Parcel out, int flags)
{
super.writeToParcel(out, flags);
out.writeString(value);
}
public static final Parcelable.Creator<SavedStateDTT> CREATOR = new Parcelable.Creator<SavedStateDTT>()
{
public SavedStateDTT createFromParcel(Parcel in)
{
return new SavedStateDTT(in);
}
public SavedStateDTT[] newArray(int size)
{
return new SavedStateDTT[size];
}
};
private SavedStateDTT(Parcel in)
{
super(in);
value = in.readString();
}
}
@Override
public Parcelable onSaveInstanceState()
{
SavedStateDTT st = new SavedStateDTT(super.onSaveInstanceState());
st.value = getValue();
if(st.value==null) st.value="";
return st;
}
@Override
public void onRestoreInstanceState(Parcelable state)
{
if (state == null || !(state instanceof SavedStateDTT))
{
super.onRestoreInstanceState(state);
return;
}
SavedStateDTT ss = (SavedStateDTT) state;
super.onRestoreInstanceState(ss.getSuperState());
setValue(ss.value);
};
}