I am creating view dynamically at runtime via. code. Its a TableLayout
tag created in xml layout file. And then in code i am adding Table Row with Spinner
and EditText
, two such rows. Issue is EditText
that is added dosent show text typed until keyboard disappears. Tried many alternatives like Setting background with different color than text color, still it dosent work.
I would be thankful if someone can suggest solution for this. Here is source code to create dynamic layout.
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);
}
You should set request focus on EditText
et2.requestFocus()
And also add in AndroidManifest.xml
android:windowSoftInputMode="adjustPan"
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.