2016-05-26 3 views
6

एक चेक इंटरनेट सेवाओं पर स्विच करने के लिए उपयोगकर्ता की मांग के बाद पर removeView() कॉल करना होगा और मैं एक बटन पर क्लिक करें करने के लिए इस लाइन इस पर त्रुटि संदेशसंवाद - निर्दिष्ट बच्चे के पास पहले से ही एक अभिभावक है। आप बच्चे के माता पिता पहले

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 

के साथ अपने ऐप्लिकेशन के क्रैश होने की कोशिश दुर्घटनाओं, मैं यह कर की कोशिश की है, लेकिन पूरी तरह से हल नहीं

if(alert.getContext() != null){ 
      alert.show(); 
     } 

यह पूरा कोड

else if (id == R.id.xyz) { 

      //startActivity(borrowIntent); 
      AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); 
      alert.setTitle("xyz"); 
      input.setFilters(new InputFilter[] { 
        // Maximum 2 characters. 
        new InputFilter.LengthFilter(6), 
        // Digits only. 
        DigitsKeyListener.getInstance(), 
       }); 
      // Digits only & use numeric soft-keyboard. 
      input.setKeyListener(DigitsKeyListener.getInstance()); 
      input.setHint("xyz"); 
      alert.setView(input); 
      alert.setPositiveButton("Borrow", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) { 
       if(input.getText().length() == 0) 
       { 
        input.setError("xyz is required !"); 
       } 
       else 
       { 

        if(isNetworkAvailable()) 
         { 
         xyz(input.getText().toString()); 

         }else{ 

          //setContentView(R.layout.main); 

          AlertDialog.Builder builder = new AlertDialog.Builder(
            MainActivity.this); 
           builder.setCancelable(false); 
           builder.setTitle("xyz"); 
           builder.setMessage("Please enable wifi services"); 
           builder.setInverseBackgroundForced(true); 
           builder.setPositiveButton("Ok", 
             new DialogInterface.OnClickListener() { 
              @Override 
              public void onClick(DialogInterface dialog, 
                int which) { 

               startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0); 
               dialog.dismiss(); 


              } 
             }); 
           AlertDialog alerts = builder.create(); 
           alerts.show(); 
          }//end of block 

         } 
       } 
      }); 
      alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
       // Canceled. 
       } 
      }); 
      if(alert.getContext() != null){ 
      alert.show(); //crashes at this line 
      } 
     } 

कृपया क्या बजे है में याद कर रहा हूँ?

+0

आप जिसमें आप उपयोग कर रहे हैं संवाद – mdDroid

उत्तर

8

समस्या इस लाइन पर है: alert.setView(input); आप inputView है कि पहले से ही parent गयी। नया input उदाहरण बनाएं।

+0

मैं केवल एक इनपुट उदाहरण के प्रकार Edittext श्रेणी स्तर – Blaze

+0

पर घोषित की जरूरत है कि गतिविधि या टुकड़ा कोड पेस्ट कर सकते हैं [प्रोग्रामेटिक रूप से एडिटटेक्स्ट उत्पन्न करना] (http://stackoverflow.com/questions/12985825/generating-edit-text-programatically-in-android) –

+0

लेकिन यदि दृश्य शून्य है या शून्य नहीं है तो – Blaze

3

रखें निम्नलिखित लाइन

final AlertDialog alertd = alert.create(); 

बाद

AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); 
+0

इनपुट I वास्तव में एक टेक्स्टफील्ड है। इसलिए उपयोगकर्ता को हटाने के लिए डेटा इनपुट करने के लिए क्षेत्र होगा – Blaze

+0

संवाद खंड में है या गतिविधि में – mdDroid

+0

गतिविधि ....... – Blaze

संबंधित मुद्दे

 संबंधित मुद्दे