2017-10-13 57 views
-4

我在應用程序中有兩個按鈕,默認顏色爲白色。當我點擊第一個按鈕時,它的顏色變爲綠色,然後我點擊第二個按鈕,它的顏色變爲紅色,按鈕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

這工作正常,但只適用於單頁。如果我有兩個活動,那麼問題是相同的,我有問有問題。 –

相關問題