2017-10-13 1 views
-4

J'ai deux boutons dans l'application avec la couleur par défaut BLANC. Lorsque je clique sur le premier bouton, la couleur change en VERT puis je clique sur le deuxième bouton, la couleur change en ROUGE et le bouton un en BLANC. Cela fonctionne bien mais quand je commence l'application encore la couleur des deux boutons est BLANCHE. Ce que je veux faire est de récupérer l'état du bouton précédent. Par exemple précédemment si j'ai cliqué sur le bouton un, puis après l'application de démarrage à nouveau la couleur du bouton un est déjà devenu VERT.Comment récupérer l'état d'un bouton précédent lors du démarrage de l'application?

Code JAVA:

package com.example.pratik.sf2020; 

    import android.graphics.Color; 
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 

    public class Pattern extends AppCompatActivity { 
    Button b1,b2; 
    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.pattern); 


      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

      b1 = (Button) findViewById(R.id.mp1n); 
      b2 = (Button) findViewById(R.id.mp1o); 

      b1.setBackgroundColor(Color.WHITE); 
      b2.setBackgroundColor(Color.WHITE); 

      b1.setOnClickListener(new View.OnClickListener() { 
          @Override 
          public void onClick(View view) { 
           b1.setBackgroundColor(Color.GREEN); 
           b2.setBackgroundColor(Color.WHITE); 


          } 
         } 
      }); 
      b2.setOnClickListener(new View.OnClickListener() { 
           @Override 
           public void onClick(View view) { 
            b1.setBackgroundColor(Color.WHITE); 
            b2.setBackgroundColor(Color.RED); 


           } 
          } 
       }); 
     } 

    } 
+2

https://stackoverflow.com/questions/3624280/how-to-use-sharedpreferences-in-android-to-store-fetch-and-edit -values ​​ – Ricardo

+0

peut avoir à utiliser sharedPreferences pour stocker les valeurs de bouton, puis en utilisant la méthode getSharedPreferences() récupérer les dernières valeurs enregistrées – Pranita

Répondre

0

essayer

SharedPreferences sp=getSharedPreferences("Button", Context.MODE_PRIVATE); 
SharedPreferences.Editor Ed=sp.edit(); 

// get status of button to set backround from SharedPreferences in oncrate() methosd 

    if(sp.getBoolean("button1",false)){ 
     b1.setBackgroundColor(Color.WHITE); 
    }else { 
     b1.setBackgroundColor(Color.GREEN); 
    } 
    if(sp.getBoolean("button2",false)){ 
     b2.setBackgroundColor(Color.WHITE); 
    }else { 
     b2.setBackgroundColor(Color.GREEN); 
    } 


// set button background status in SharedPreferences 
b1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     b1.setBackgroundColor(Color.GREEN); 
     b2.setBackgroundColor(Color.WHITE); 
     Ed.putBoolean("button1", true); 
     Ed.commit(); 

     } 
    } 
    }); 

    b2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       b1.setBackgroundColor(Color.WHITE); 
       b2.setBackgroundColor(Color.RED); 
       Ed.putBoolean("button2", true); 
       Ed.commit(); 

      } 
      } 
     }); 
+0

Cela fonctionne très bien, mais ne fonctionne que pour une seule page. Si j'ai deux activités alors le problème est le même que j'ai demandé en question. –

0

Vous devez utiliser SharedPreference pour enregistrer les événements actuels. Chaque fois que vous voulez économiser un peu d'instant.

Click to see more...