再次重新打开应用程序

时间:2017-07-16 08:50:33

标签: java android

我想在一个页面中做很多按钮,当用户使用Android手机点击该页面中的一个按钮时,该页面将被禁用,其他所有按钮将被禁用,只有点击的按钮将变为红色,当重新打开时应用程序,点击的按钮仍为红色。如果谁知道该怎么做,请告诉我。以下是我的编码:

   <Button
       android:text="Button"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/button" />

   <Button
       android:text="Button"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/button2" />

   <Button
       android:text="Button"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/button3" />

   <Button
       android:text="Button"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/button4" />

这是我的主要活动xml。

public class MainActivity extends AppCompatActivity {
    Button button,button1,button2,button3;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.button);
    button1 = (Button) findViewById(R.id.button2);
    button2 = (Button) findViewById(R.id.button3);
    button3 = (Button) findViewById(R.id.button4);

    if(button.isClickable()) {


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                button.setEnabled(false);
                button.setBackgroundColor(Color.RED);
                button1.setEnabled(false);
                button2.setEnabled(false);
                button3.setEnabled(false);
            }
        });
    }
    if(button1.isClickable()) {


        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                button.setEnabled(false);
                button1.setBackgroundColor(Color.RED);
                button1.setEnabled(false);
                button2.setEnabled(false);
                button3.setEnabled(false);
            }
        });
    }
    if(button2.isClickable()) {


        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                button.setEnabled(false);
                button2.setBackgroundColor(Color.RED);
                button1.setEnabled(false);
                button2.setEnabled(false);
                button3.setEnabled(false);
            }
        });
    }
    if(button3.isClickable()) {


        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                button.setEnabled(false);
                button3.setBackgroundColor(Color.RED);
                button1.setEnabled(false);
                button2.setEnabled(false);
                button3.setEnabled(false);
            }
        });
    }
    Log.e("onCreate: ", "UniqueKey: " + getUniqueKey());
}

public String getUniqueKey(){
    String android_id = Settings.Secure.getString(this.getContentResolver(),
            Settings.Secure.ANDROID_ID);
    return android_id;
}

} 这是我的主要活动java。这是每个Android手机都可以单击按钮一次,点击并重新打开应用程序后,该按钮将被禁用并且红色也会禁用其他按钮,谢谢

3 个答案:

答案 0 :(得分:0)

SharedPreferences 中保存按钮的状态,再次重新打开应用程序时,请检查首选项中的值并加载布局。

答案 1 :(得分:0)

Android中有一个名为SharedPreferences的选项,允许您将应用程序的任何状态实例保存到内存中,然后从设置中检索它。因此,只需将按钮ID保存到SharedPreferences,当您打开应用程序时,在首选项中获取按钮的ID,然后禁用您需要禁用的其他按钮。

答案 2 :(得分:0)

共享偏好示例

1.在sharedPrefernces中存储值:

SharedPreferences preferences = this.getSharedPreferences("SoldiPreferences", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("storevalue", false);
editor.commit();

2.来自sharedPreferences的值:在您的活动的Oncreate中

   SharedPreferences preferences = this.getSharedPreferences("SoldiPreferences", Context.MODE_PRIVATE);
    preferences.getBoolean("storevalue", false);

    if(preferences.getBoolean("storevalue", false))
    {
    button.setclickable(true);
   button.setenable(true);
    }
    else{
     button.setclickable(false);
   button.setenable(false);
}
  1. onButtonCLikListner更新sharefpreffernce值

    final Button button = new Button(this);         button.setOnClickListener(new View.OnClickListener(){             @覆盖             public void onClick(查看v){

                SharedPreferences preferences = getApplicationContext().getSharedPreferences("SoldiPreferences", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = preferences.edit();
    
                if(preferences.getBoolean("storevalue", false))
                {
    
    
                    editor.putBoolean("storevalue", false);
                    editor.commit();
                }
                else{
    
                    editor.putBoolean("storevalue", true);
                    editor.commit();
                }
    
                button.setclickable(true);
                button.setenable(true);
    
    
    
            }
        });