Ich muss häufig zwischen zwei Layouts wechseln. Der Fehler tritt im unten angegebenen Layout auf.
Wenn mein Layout zum ersten Mal aufgerufen wird, tritt kein Fehler auf und alles ist in Ordnung. Wenn ich dann ein anderes Layout (ein leeres) und anschließend ein zweites Mal mein Layout aufrufe, wird der folgende Fehler ausgegeben:
> FATAL EXCEPTION: main
> java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
Mein Layout-Code sieht folgendermaßen aus:
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);
}
}
}
Ich weiß, dass diese Frage schon einmal gestellt wurde, aber in meinem Fall hat sie nicht geholfen.
TranstitionManager.beginDelayedTransition
, die verwenden , überprüfen Sie bitte meine Antwort hier
LinearLayout
aber Sie fügen hinzuTextView
. Also repariere es.