2017-07-24 8 views
0

Derzeit verwalten die Schaltflächen erstellen dynamisch auf einem BlickDynamisch und Speicher Schaltflächen im Android Studio

Hier ist der mein Code, um die Tasten zu schaffen;

public void Add_on(View v) { 
     AlertDialog.Builder mbuilder = new AlertDialog.Builder(Mb.this); 
     View mview = getLayoutInflater().inflate(R.layout.activity_mb1, null); 
     EditText number = (EditText) mview.findViewById(R.id.etnum); 
     Button Create = (Button) mview.findViewById(R.id.etcreate); 
     Button Cancel = (Button) mview.findViewById(R.id.etcancel); 

     Create.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(View view){ 

       if (!number.getText().toString().isEmpty()) 
       { 
        Toast.makeText(Mb.this, "Number can be NULL",Toast.LENGTH_SHORT).show(); 


        LinearLayout yenilayout = new LinearLayout(Mb.this); 
        int n =1; 
        for(int i=0; i<n; i++) 
        { 
         Button yeniButton = new Button(Mb.this); 
         yenilayout.addView(yeniButton); 

         yeniButton.setOnClickListener(new View.OnClickListener() { 
          @Override 
          public void onClick(View v) { 
           Toast.makeText(Mb.this, "Button is working",Toast.LENGTH_SHORT).show(); 
          } 
         }); 

        } 
        altlayout.addView(yenilayout); 


       } else { 
        Toast.makeText(Mb.this, "Number cannot be NULL",Toast.LENGTH_SHORT).show(); 

       } 

      } 
     }); 

Aber wenn ich die Aktivität erinnern, sind die Tasten nicht mehr existieren. So kann ich wissen, kann ich den Knopf dort dauerhaft setzen?

Vielen Dank für Anregungen

+0

Jedes Mal, wenn die Aktivität neu erstellt wird, müssen Sie auf die Schaltfläche 'Erstellen' klicken, um diese dynamischen Schaltflächen zu erhalten. PS: Es ist ein Standard, Kleinbuchstaben ersten Buchstaben für Variablen und Großbuchstaben ersten Buchstaben für Klassen zu verwenden – ZeekHuge

Antwort

0

Sie Bundle verwenden können eine Aktivität des Staates und neu erstellen in dem onCreate() Methode zu speichern. Dies funktioniert für eine bestimmte Instanz von Activity, kann also verwendet werden, um Daten über die Auswahl oder Benutzereingaben usw. zu speichern, aber nicht Daten, die Sie über Anwendungsstarts hinweg persistent sein müssen.

Um die Bundle zu verwenden, überschreiben die onSaveInstanceState(Bundle) und onRestoreInstanceState(Bundle) Methoden in der Activity Klasse. Sie können Methoden von Bundle verwenden, um beliebige Daten in einer Karte zu speichern und in onRestoreInstanceState(Bundle) zurückzurufen, die in onStart() aufgerufen wird.

Die Standardimplementierungen bereits die meisten UI Sachen behandeln aber, und ich würde das hätte gedacht, für Sie den Überblick über Ihre Tasten zu halten, kann es so sein, dass Ihre Frage tatsächlich zu assoziieren einige persistente Daten mit Ihrem Anwendung. (Dies bedeutet auch, dass Sie die Supermethoden in der ersten Zeile Ihrer Implementierung aufrufen sollten, wenn Sie die oben genannten Methoden überschreiben).

Wenn Sie persistente Daten für alle Anwendungsstarts benötigen, dann wäre der schnellste und einfachste Weg die Verwendung SharedPreferences, siehe this Antwort für ein Beispiel.

Verwandte Themen