Pracuję nad aplikacją, w której muszę dynamicznie tworzyć wiele EditText
i Spinner. Zacząłem więc szukać rozwiązania , ponieważ nie mam uprawnień do korzystania z właściwości w pliku XML. Szukałem bardzo dużo i dostałem kilka przykładów tylko na stackoverflow. Postępuję zgodnie z nimi i stworzyłem ten program.Dynamiczne tworzenie EditText w Androidzie
**MainActivity.java code**
public class MainActivity extends Activity {
RelativeLayout containerLayout;
static int totalEditTexts = 0;
Button button;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
containerLayout = (RelativeLayout)findViewById(R.id.relative1);
button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
totalEditTexts++;
if (totalEditTexts > 100)
return;
EditText editText = new EditText(getBaseContext());
containerLayout.addView(editText);
editText.setGravity(Gravity.RIGHT);
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) editText.getLayoutParams();
layoutParams.width = RelativeLayout.LayoutParams.MATCH_PARENT;
layoutParams.setMargins(23, 34, 0, 0);
// RelativeLayout.LayoutParams()
editText.setLayoutParams(layoutParams);
//if you want to identify the created editTexts, set a tag, like below
editText.setTag("EditText" + totalEditTexts);
}
});
} }
Kiedy używam tego kodu, to jest stworzenie EditText gdy przycisk został kliknięty. Ale tylko raz. Nie wiem, co się dzieje później. czy tworzy nowy EditText, czy nakłada się na stary, w przeciwnym razie nie tworzy więcej niż jednego EditText.
Czy ktoś może wyjaśnić mi, co mam teraz zrobić, aby rozwiązać ten problem.