2015-04-15 16 views
5

Mam okno alertu i będę się tekst z TextView ale kiedy nazywają go po raz drugi, awarii aplikacji z powodu błędu:Należy zadzwonić removeView() na rodzica dziecka najpierw AlertView

04-15 19:37:48.433: E/AndroidRuntime(907): java.lang.IllegalStateException: 
    The specified child already has a parent. You must call removeView() on 
    the child's parent first. 

Moje źródło Java:

public class MainActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final RelativeLayout rLayout = (RelativeLayout) findViewById(R.id.relativeLayout); 
     Button btn1 = (Button) findViewById(R.id.button1); 
     final AlertDialog.Builder build = new AlertDialog.Builder(MainActivity.this); 
     build.setTitle("Ders Adı Giriniz"); 
     final EditText dersAdiGir = new EditText(MainActivity.this); 
     build.setView(dersAdiGir); 
     final LinearLayout layoutDers = (LinearLayout) findViewById(R.id.layoutDers); 

     build.setPositiveButton("Tamam", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 

       Editable girilenDers = dersAdiGir.getText(); 
       TextView tv1 = new TextView(MainActivity.this); 
       tv1.setText(girilenDers); 
       layoutDers.addView(tv1); 
       dialog.dismiss(); 
       build.create(); 

      } 
     }); 

     btn1.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       AlertDialog alert = build.create(); 
       alert.show(); 
      } 
     }); 




    } 
} 

Proszę mi pomóc, dzięki wszystkim

Odpowiedz

9

Ty tworzysz nową instancję AlarmDialog każdy z przycisków. Utwórz ostateczną wersję AlarmDialog poza wewnętrzną klasą .

Oto dylemat:

 final AlertDialog alert = build.create(); 

     btn1.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       alert.show(); 
      } 
     }); 
+0

Wohoooooo! Dzięki, napraw to :) –

+0

Nie działa w ViewHolder z ostrzeżeniem końcowego AlertDialog.Builder – delive

+0

to nie działało, chociaż stworzyłem go wcześniej –

Powiązane problemy