package dbfields; import android.content.Context; import android.database.Cursor; import android.os.Parcel; import android.os.Parcelable; import android.text.InputType; import android.util.AttributeSet; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import java.util.ArrayList; import java.util.List; import kz.istt.locust.DbOpenHelper; import kz.istt.locust.LocustActivity; import kz.istt.locust.R; import static android.widget.AdapterView.INVALID_POSITION; public class AutoCompleteTextViewDB extends AutoCompleteTextView implements selectDB { private String m_Value = null; private List m_lName = new ArrayList(); //Заголовки private List m_lVal = new ArrayList(); //Значения public ArrayAdapter dataAdapter = null; private Context m_context = null; private List m_lChange = new ArrayList(); //Слушатели изменений /*private AdapterView.OnItemSelectedListener listener = new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parentView, View selectedItemView, int position, long id) { if (getSelectedItemPosition() != INVALID_POSITION && position != INVALID_POSITION) AutoCompleteTextViewDB.this.setValue(m_lVal.get(getSelectedItemPosition())); } @Override public void onNothingSelected(AdapterView parentView) { } };*/ private AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { int pos=getSelectedItemPosition(); String val=m_lVal.get(pos); AutoCompleteTextViewDB.this.setValue(val); } }; int getSelectedItemPosition() { String str = this.getText().toString(); int pos=INVALID_POSITION; for(int i=0; i(m_context, R.layout.dropdown_item, m_lName); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); this.setAdapter(dataAdapter); //setOnItemSelectedListener(listener); setOnItemClickListener(listener); updatePosition(); //Чтоб установилось на существующее значение если оно есть } public void clearFields() { m_lName.clear(); m_lVal.clear(); //Обновляем список //setOnItemSelectedListener(null); setOnItemClickListener(null); dataAdapter = new ArrayAdapter(m_context, R.layout.dropdown_item, m_lName); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); this.setAdapter(dataAdapter); //setOnItemSelectedListener(listener); setOnItemClickListener(listener); } public void updateAdapter(Context context){ //Обновляем список setOnItemClickListener(null); dataAdapter = new ArrayAdapter(context, R.layout.dropdown_item, m_lName); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); this.setAdapter(dataAdapter); setOnItemClickListener(listener); } /** * Обновить позицию вып списка в соответствии со значением */ public void updatePosition() { Boolean b=true; for(int i=0;i CREATOR = new Parcelable.Creator() { public SavedState createFromParcel(Parcel in) { return new SavedState(in); } public SavedState[] newArray(int size) { return new SavedState[size]; } }; private SavedState(Parcel in) { super(in); value = in.readString(); } } @Override public Parcelable onSaveInstanceState() { SavedState st = new SavedState(super.onSaveInstanceState()); st.value = getValue(); if(st.value==null) st.value=""; return st; } @Override public void onRestoreInstanceState(Parcelable state) { if (state == null || !(state instanceof SavedState)) { super.onRestoreInstanceState(state); return; } SavedState ss = (SavedState) state; super.onRestoreInstanceState(ss.getSuperState()); setValue(ss.value); }; */ }