SharedPreferences保存按钮更改后单击它不可见

时间:2017-04-19 00:05:52

标签: android button save sharedpreferences invisible

我是新来的。我是法国人,所以也许我的英语不是很好,对不起。

我是Android开发的初学者,我必须创建一个应用程序来完成我的学习。

我向你解释我的问题:我有一个名为VoeuxActivity.java 8的按钮,它们在开始时都是可见的,当用户点击其中一个按钮时由INVISIBLE改变(用户无法看到按钮)点击之后),我没有问题。但我的问题是,当我退出应用程序并再次回到我的应用程序时,按钮再次可见,因此我的应用程序上没有保存。 我想我必须使用SharedPreferences但我真的不知道如何使用它。 如果有人可以帮助我,我会很开心。 我发布了一个带有一个按钮的法庭代码和按钮上方的文本(因为按钮是背景中的图像)。我也使TextView INVISIBLE,我也想保存更改。

公共类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的更改从Visible保存到Invisible?

感谢您的帮助。 吉格斯

3 个答案:

答案 0 :(得分:1)

您可以使用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);
            }
        });
    }

答案 1 :(得分:1)

以这种方式实施var myObject = { name: 'Tom', thisIs: 'so awful', imSorry: true, }; function doSomethingWithName(name) { for (var obj in window) { var tmp = window[obj]; if (Object(tmp) === tmp && tmp.name === name) { return tmp; } } } console.log(doSomethingWithName(myObject.name));

SharedPreferences

答案 2 :(得分:1)

试试这个,

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);
        }
    });
}