我想在一个页面中做很多按钮,当用户使用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手机都可以单击按钮一次,点击并重新打开应用程序后,该按钮将被禁用并且红色也会禁用其他按钮,谢谢
答案 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);
}
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);
}
});