2017-10-13 2 views
-4

私は、デフォルトカラーのホワイトの2つのボタンをアプリケーションに持っています。最初のボタンをクリックすると緑色に変わり、2番目のボタンをクリックすると色が赤色に変化し、ボタン1が白色に変わります。それはうまく動作しますが、私がもう一度アプリケーションを開始すると、両方のボタンの色は白です。私がしたいことは、前のボタンの状態を取得することです。たとえば、前にボタン1をクリックしてからアプリケーションを起動した後、ボタン1の色がすでに緑色になっています。アプリケーションを再起動すると、以前のボタンの状態を取得する方法は?

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値 – Ricardo

+0

は、ボタン値を保存するためにsharedPreferencesを使用し、次にgetSharedPreferences()メソッドを使用して最後に保存した値を取得することがあります – Pranita

答えて

0

してみてください。この

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

これはうまくいきますが、単一ページでのみ機能します。質問した –

0

あなたが現在イベントを保存するためにSharedPreferenceを使用する必要があります。いつでもあなたはある瞬間を保存したい。

Click to see more...

関連する問題