2017-10-13 53 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

这工作正常,但只适用于单页。如果我有两个活动,那么问题是相同的,我有问有问题。 –

相关问题