Первая
This commit is contained in:
110
app/src/main/java/dbfields/DateTimeText.java
Normal file
110
app/src/main/java/dbfields/DateTimeText.java
Normal file
@ -0,0 +1,110 @@
|
||||
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.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;
|
||||
}
|
||||
|
||||
//Передаётся в секундах с 1970 года по гринвичу но отображается в локальном времени 1579154400 отображается 16.01.2020 12:00 (в Алмате)
|
||||
public void setValue(String val)
|
||||
{
|
||||
m_Value = val;
|
||||
if(val!=null && !val.equals(""))
|
||||
{
|
||||
Date date = new Date(Long.parseLong(m_Value)*1000);
|
||||
|
||||
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm");
|
||||
//format.setTimeZone(TimeZone.getTimeZone("UTC"));
|
||||
|
||||
String str = format.format(date);
|
||||
setText(str);
|
||||
}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);
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user