I have a a custom View that extends LinearLayout :
public class CustomEditTextLogin extends LinearLayout {
public CustomEditTextLogin(Context context) {
super(context);
// TODO Auto-generated constructor stub
initialize(context);
}
public CustomEditTextLogin(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
initialize(context);
}
private LinearLayout llParentCetL;
private TextView txtAlertCs;
private EditText edt;
private ImageView img;
public static final int TEXT = 0;
public static final int EMAIL = 1;
public static final int PASSWORD = 2;
public static final int USERNAME = 3;
private void initialize(Context context) {
LayoutInflater mLayoutInflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = mLayoutInflater.inflate(R.layout.custom_edit_text_login, this, true);
llParentCetL = (LinearLayout) view.findViewById(R.id.llParentCetL);
txtAlertCs = (TextView) view.findViewById(R.id.txtAlertCetL);
edt = (EditText) view.findViewById(R.id.edtCetL);
img = (ImageView) view.findViewById(R.id.imgCetL);
txtAlertCs.setVisibility(View.GONE);
int imgMargin = (int) (UIHelpers.width *0.025);
UIHelpers.setMargin(img, imgMargin, imgMargin, imgMargin, imgMargin);
img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
setFocus();
}
});
public CustomEditTextLogin setFocus(){
if(edt != null){
edt.setFocusableInTouchMode(true);
edt.requestFocus();
InputMethodManager imm = (InputMethodManager) App.context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edt, InputMethodManager.SHOW_IMPLICIT);
}
return this;
}
}
I want to save instance state and restore it, but it is different from Activity's instance state.
How to save instance state on custom view in Android?
Not sure that I understood you correctly. But looks like you want to save the state your View independently from Activity instance and be able to restore it. You can use retained fragments for this.
Use FragmentManager to retrieve the fragment when the activity is restarted.
}
To restore saved object you can use FragmentManager.
Here you can find more information about that: http://developer.android.com/guide/topics/resources/runtime-changes.html
Hope this helps.