Je dois souvent basculer entre deux mises en page. L'erreur se produit dans la mise en page publiée ci-dessous.
Lorsque ma mise en page est appelée la première fois, il ne se produit aucune erreur et tout va bien. Lorsque j'appelle ensuite une mise en page différente (une mise en page vide) et que j'appelle ensuite ma mise en page une deuxième fois, cela génère l'erreur suivante:
> FATAL EXCEPTION: main
> java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
Mon code de mise en page ressemble à ceci:
tv = new TextView(getApplicationContext()); // are initialized somewhere else
et = new EditText(getApplicationContext()); // in the code
private void ConsoleWindow(){
runOnUiThread(new Runnable(){
@Override
public void run(){
// MY LAYOUT:
setContentView(R.layout.activity_console);
// LINEAR LAYOUT
LinearLayout layout=new LinearLayout(getApplicationContext());
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);
// TEXTVIEW
layout.addView(tv); // <========== ERROR IN THIS LINE DURING 2ND RUN
// EDITTEXT
et.setHint("Enter Command");
layout.addView(et);
}
}
}
Je sais que cette question a déjà été posée, mais cela n'a pas aidé dans mon cas.
TranstitionManager.beginDelayedTransition
, veuillez vérifier ma réponse ici
LinearLayout
mais vous ajoutezTextView
. Alors réparez-le.