पर removeView() को कॉल करना होगा, मेरे ऐप में, मुझे अक्सर दो लेआउट के बीच स्विच करना होगा। नीचे पोस्ट किए गए लेआउट में त्रुटि हो रही है।निर्दिष्ट बच्चे के पास पहले से ही एक अभिभावक है। आपको बच्चे के माता-पिता पहले (एंड्रॉइड)
जब मेरा लेआउट पहली बार बुलाया जाता है, तो कोई त्रुटि नहीं होती है और सब ठीक है। जब मैं तो एक अलग लेआउट (एक खाली एक) कहते हैं और बाद में मेरी लेआउट दूसरी बार कहते हैं, यह मुझे निम्न त्रुटि देता है:
> FATAL EXCEPTION: main
> java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
मेरे लेआउट-कोड इस तरह दिखता है:
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);
}
}
}
मुझे पता है कि इस सवाल से पहले पूछा गया है, लेकिन यह मेरे मामले में मदद नहीं करता है।
कभी कभी यादृच्छिक जवाब जो वास्तव में पूछे जाने वाले प्रश्नों के जवाब नहीं हैं किसी और की मदद के रूप में गुजरती हैं। यह मेरे लिए काम किया। धन्यवाद! –
अच्छा !, और यही कारण है कि लोगों को ज्यादातर बार "शून्य" को inflaters में 2 डी पैरामीटर के रूप में पास करना चाहिए। धन्यवाद। – superUser
माता-पिता के लिए ज़िम्मेदार पैरामीटर में शून्य पास करना बुरा विचार नहीं है, लेकिन आपको यह जानना होगा कि इस मामले में बच्चे के दृश्य (जिसे आप फुलाते हैं) कुछ मामलों में इसे सही ढंग से मापने में सक्षम नहीं होंगे, क्योंकि यह करता है माता-पिता के बारे में कुछ भी नहीं पता। कुछ मामलों में यह काम करेगा लेकिन कुछ में नहीं होगा। – Sniper