Saya harus sering beralih di antara dua tata letak. Kesalahan terjadi pada tata letak yang diposting di bawah ini.
Ketika tata letak saya disebut pertama kali, tidak ada kesalahan dan semuanya baik-baik saja. Ketika saya kemudian memanggil tata letak yang berbeda (yang kosong) dan kemudian memanggil tata letak saya untuk kedua kalinya, itu melempar kesalahan berikut:
> FATAL EXCEPTION: main
> java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
Lay-code saya terlihat seperti ini:
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);
}
}
}
Saya tahu pertanyaan ini telah diajukan sebelumnya, tetapi itu tidak membantu dalam kasus saya.
LinearLayout
tetapi Anda menambahkanTextView
. Jadi perbaiki.