SharedPreferences 在点击后保存一个按钮更改不可见
SharedPreferences save a button change invisible after click on it
我是新来的。我是法国人所以可能我的英语不是很好,抱歉。
我是 Android 开发的初学者,我必须创建一个应用程序来完成我的学习。
我向你解释一下我的问题:我有一个 activity 叫做 VoeuxActivity.java 8 个按钮,它们在开始时都是 VISIBLE,当用户点击其中一个按钮时,按钮会变为 INVISIBLE (用户点击后看不到按钮),我没有问题。但我的问题是,当我退出该应用程序并再次返回我的应用程序时,该按钮再次可见,因此我的应用程序没有保存。
我想我必须使用 SharedPreferences 但我真的不知道如何使用它。
如果有人能帮助我,我会很高兴。
我 post 带有一个按钮和按钮上方文本的法院代码(因为按钮是背景中的图像)。我也让 TextView 不可见,我也想保存更改。
public class VoeuxActivity 扩展 Activity {
public static boolean isClicked = false;
Button totoB;
TextView totoTv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_voeux);
totoB = (Button) findViewById(R.id.perso1);
totoTV = (TextView) findViewById(R.id.perso1Text);
totoB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isClicked = true;
totoB.setVisibility(View.INVISIBLE);
totoTv.setVisibility(View.INVISIBLE);
Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class);
startActivity(intentToto);
}
});
}
}
如何保存 Button 和 TextView 从可见到不可见的变化?
谢谢你的帮助。
吉格斯
您可以使用 SharedPreferences 来保存一些设置和信息,对于您的情况,请遵循以下代码:
Button totoB;
TextView totoTv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_voeux);
final SharedPreferences prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE);
totoB = (Button) findViewById(R.id.perso1);
totoTv = (TextView) findViewById(R.id.perso1Text);
totoB.setVisibility(prefs.getBoolean("isTotoBVisible", true) ? View.VISIBLE : View.INVISIBLE);
totoTv.setVisibility(prefs.getBoolean("isTotoTVVisible", true) ? View.VISIBLE : View.INVISIBLE);
totoB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
prefs.edit().putBoolean("isTotoBVisible", false).apply();
prefs.edit().putBoolean("isTotoTVVisible", false).apply();
totoB.setVisibility(View.INVISIBLE);
totoTv.setVisibility(View.INVISIBLE);
Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class);
startActivity(intentToto);
}
});
}
以这种方式实施您的SharedPreferences
:
Boolean isFirstTime;
SharedPreferences app_preferences = PreferenceManager
.getDefaultSharedPreferences(Splash.this);
SharedPreferences.Editor editor = app_preferences.edit();
isFirstTime = app_preferences.getBoolean("isFirstTime", true);
if (isFirstTime) {
//implement your first time logic
//SHow Button
editor.putBoolean("isFirstTime", false);
editor.commit();
}else{
//Invisible button
//app open directly
}
试试这个,
public static boolean isClicked = false;
Button totoB;
TextView totoTv;
SharedPreferences preferences;
SharedPreferences.Editor prefsEditor ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_voeux);
preferences = getSharedPreferences("AppPrefs", MODE_PRIVATE);
prefsEditor = preferences.edit();
//get value
String buttonClick=preferences.getString("ButtonClick", "0");
if(buttonClick.equals("0"))//before button click
{
totoB.setVisibility(View.VISIBLE);
totoTv.setVisibility(View.VISIBLE);
}
else
{
totoB.setVisibility(View.INVISIBLE);
totoTv.setVisibility(View.INVISIBLE);
}
totoB = (Button) findViewById(R.id.perso1);
totoTV = (TextView) findViewById(R.id.perso1Text);
totoB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isClicked = true;
prefsEditor.putString("ButtonClick", "1");
totoB.setVisibility(View.INVISIBLE);
totoTv.setVisibility(View.INVISIBLE);
Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class);
startActivity(intentToto);
}
});
}
我是新来的。我是法国人所以可能我的英语不是很好,抱歉。
我是 Android 开发的初学者,我必须创建一个应用程序来完成我的学习。
我向你解释一下我的问题:我有一个 activity 叫做 VoeuxActivity.java 8 个按钮,它们在开始时都是 VISIBLE,当用户点击其中一个按钮时,按钮会变为 INVISIBLE (用户点击后看不到按钮),我没有问题。但我的问题是,当我退出该应用程序并再次返回我的应用程序时,该按钮再次可见,因此我的应用程序没有保存。 我想我必须使用 SharedPreferences 但我真的不知道如何使用它。 如果有人能帮助我,我会很高兴。 我 post 带有一个按钮和按钮上方文本的法院代码(因为按钮是背景中的图像)。我也让 TextView 不可见,我也想保存更改。
public class VoeuxActivity 扩展 Activity {
public static boolean isClicked = false;
Button totoB;
TextView totoTv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_voeux);
totoB = (Button) findViewById(R.id.perso1);
totoTV = (TextView) findViewById(R.id.perso1Text);
totoB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isClicked = true;
totoB.setVisibility(View.INVISIBLE);
totoTv.setVisibility(View.INVISIBLE);
Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class);
startActivity(intentToto);
}
});
} }
如何保存 Button 和 TextView 从可见到不可见的变化?
谢谢你的帮助。 吉格斯
您可以使用 SharedPreferences 来保存一些设置和信息,对于您的情况,请遵循以下代码:
Button totoB;
TextView totoTv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_voeux);
final SharedPreferences prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE);
totoB = (Button) findViewById(R.id.perso1);
totoTv = (TextView) findViewById(R.id.perso1Text);
totoB.setVisibility(prefs.getBoolean("isTotoBVisible", true) ? View.VISIBLE : View.INVISIBLE);
totoTv.setVisibility(prefs.getBoolean("isTotoTVVisible", true) ? View.VISIBLE : View.INVISIBLE);
totoB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
prefs.edit().putBoolean("isTotoBVisible", false).apply();
prefs.edit().putBoolean("isTotoTVVisible", false).apply();
totoB.setVisibility(View.INVISIBLE);
totoTv.setVisibility(View.INVISIBLE);
Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class);
startActivity(intentToto);
}
});
}
以这种方式实施您的SharedPreferences
:
Boolean isFirstTime;
SharedPreferences app_preferences = PreferenceManager
.getDefaultSharedPreferences(Splash.this);
SharedPreferences.Editor editor = app_preferences.edit();
isFirstTime = app_preferences.getBoolean("isFirstTime", true);
if (isFirstTime) {
//implement your first time logic
//SHow Button
editor.putBoolean("isFirstTime", false);
editor.commit();
}else{
//Invisible button
//app open directly
}
试试这个,
public static boolean isClicked = false;
Button totoB;
TextView totoTv;
SharedPreferences preferences;
SharedPreferences.Editor prefsEditor ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_voeux);
preferences = getSharedPreferences("AppPrefs", MODE_PRIVATE);
prefsEditor = preferences.edit();
//get value
String buttonClick=preferences.getString("ButtonClick", "0");
if(buttonClick.equals("0"))//before button click
{
totoB.setVisibility(View.VISIBLE);
totoTv.setVisibility(View.VISIBLE);
}
else
{
totoB.setVisibility(View.INVISIBLE);
totoTv.setVisibility(View.INVISIBLE);
}
totoB = (Button) findViewById(R.id.perso1);
totoTV = (TextView) findViewById(R.id.perso1Text);
totoB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isClicked = true;
prefsEditor.putString("ButtonClick", "1");
totoB.setVisibility(View.INVISIBLE);
totoTv.setVisibility(View.INVISIBLE);
Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class);
startActivity(intentToto);
}
});
}