Я создаю представление динамически во время выполнения через.код.Это тег TableLayout
, созданный в файле макета xml.И затем в коде я добавляю строку таблицы с Spinner
и EditText
, двумя такими строками.Ошибка EditText
, которая добавляется до тех пор, пока текст не будет напечатан до исчезновения клавиатуры.Перепробовал много вариантов, таких как Установка фона с другим цветом, нежели цвет текста, но это не помогло.
Буду благодарен, если кто-то может предложить решение для этого.Вот исходный код для создания динамического макета.
private void createRowRange() {
cnt++;
listCnt.add(cnt + "");
final TableRow row = new TableRow(getActivity());
String one = String.valueOf(cnt) + "1";
String two = String.valueOf(cnt) + "2";
String three = String.valueOf(cnt) + "3";
String four = String.valueOf(cnt) + "4";
ImageView imgRem = new ImageView(getActivity());
imgRem.setId(cnt);
row.setId(generateViewId());
row.addView(imgRem);
final TableRow row1 = new TableRow(getActivity());
final Spinner spinnerEquipment = new Spinner(getActivity());
spinnerEquipment.setId(Integer.parseInt(one));
spinnerEquipment.setMinimumWidth(400);
ArrayList<String> array = new ArrayList<>();
array.add(getString(R.string.select_price_per));
array.add("Distance (Km)");
array.add("Hour");
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item, array);
spinnerEquipment.setAdapter(adapter);
final EditText et1 = new EditText(getActivity());
et1.setHint("Price");
et1.setWidth(300);
et1.setTextColor(ContextCompat.getColor(getActivity(), R.color.colorBlack));
et1.setInputType(InputType.TYPE_CLASS_NUMBER);
et1.setPadding(15, 15, 15, 15);
et1.setId(Integer.parseInt(two));
et1.setBackground(ContextCompat.getDrawable(getActivity(), R.drawable.input_outline));
row1.addView(spinnerEquipment);
row1.addView(et1);
final TableRow row2 = new TableRow(getActivity());
final Spinner spinnerEquipment2 = new Spinner(getActivity());
spinnerEquipment2.setId(Integer.parseInt(three));
spinnerEquipment.setMinimumWidth(400);
final ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, equipmentArray);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerEquipment2.setAdapter(adapter2);
final EditText et2 = new EditText(getActivity());
et2.setHint("Fixed Price");
et2.setWidth(300);
et2.setTextColor(ContextCompat.getColor(getActivity(), R.color.colorBlack));
et2.setInputType(InputType.TYPE_CLASS_NUMBER);
et2.setPadding(15, 15, 15, 15);
et2.setId(Integer.parseInt(four));
et2.setBackground(ContextCompat.getDrawable(getActivity(), R.drawable.input_outline));
row2.addView(spinnerEquipment2);
row2.addView(et2);
imgRem.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.mipmap.ic_minus));
imgRem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tableRange.removeView(row);
tableRange.removeView(row1);
tableRange.removeView(row2);
Log.d(TAG, "Count :: " + v.getId() + "");
listCnt.remove(v.getId() + "");
for (String i : listCnt)
Log.d(TAG, i + "");
}
});
tableRange.addView(row);
tableRange.addView(row2);
tableRange.addView(row1);
}