Witam, przejdę od razu do rzeczy aby nie marnować waszego czasu.
Po kliknięciu w pole EditText zaznacza się ono na ułamek sekundy i wychodzi automatycznie z niego bez mojej ingerencji oto kod tej klasy:
Automatyczne wyjście następuje wtedy gdy nad klawiatura pojawia się mały pasek z sugerowanymi słowami, ten pasek pojawia się także na ułamek sekundy a gdy zniknie następuje wyjście z pola editText a po ponownym kliknięciu pasek znowu wyskakuje i znowu się chowa tworząc w ten sposób koło.
public class AdapterList extends ArrayAdapter<String> implements DataList, View.OnClickListener{
Context context;
String[] value;
SharedPreferences preferences;
EditText editText;
String[] editValue;
SharedPreferences.Editor preferencesSaved;
Button button;
public AdapterList(Context context, String[] value, Button button){
super(context, R.layout.description_views, R.id.column_example, value);
this.context = context;
this.value = value;
preferences = context.getSharedPreferences("list", Context.MODE_PRIVATE);
preferencesSaved = context.getSharedPreferences("saved", Context.MODE_PRIVATE).edit();
editValue = new String[10];
this.button = button;
button.setOnClickListener(this);
}
public View getView(final int position, View counterView, ViewGroup viewGroup){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View row = inflater.inflate(R.layout.description_views, viewGroup, false);
editText = (EditText) row.findViewById(R.id.column_value);
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
button.setVisibility(View.GONE);
}else {
button.setVisibility(View.VISIBLE);
}
}
});
switch (position){
case 1:
editText.setText("2017-04-07");
break;
case 2:
editText.setText("13:06");
break;
default:
editText.setText("");
break;
}
editValue[position] = editText.getText().toString();
if(preferences.getBoolean(DataList.list[position], false)) {
TextView textValue = (TextView) row.findViewById(R.id.column_example);
textValue.setText(value[position]);
return row;
//Aby zniknął cały wiersz nalezy ustawic kazdemu z osobna w wierszu View.GONE
}
row.setVisibility(View.GONE);
return row;
}
@Override
public void onClick(View v) {
for(int i = 0; i < 10; i++){
preferencesSaved.putString(DataList.list[i], editValue[i]);
Log.d("", String.valueOf(editValue[i]));
}
preferencesSaved.apply();
}
}