SharedPreferences在TextView中保存Int的值 [英] SharedPreferences Save value of Int in a TextView

查看:194
本文介绍了SharedPreferences在TextView中保存Int的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用SharedPreferences保存TextView中显示的int的值,它根本无法工作。我做了一个简单的小代码示例:

I try to save the value of an int displayed in a TextView using SharedPreferences, it can't work at all. I did a simple small example of code :

public class MainActivity extends Activity {

Button search;
TextView tvRing;
int redRing;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final SharedPreferences prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE);

    search = (Button) findViewById(R.id.radar);
    tvRing = (TextView) findViewById(R.id.ring);

    int someint = prefs.getInt("someint", 0);
    tvRing.setText("Objects found : " + String.valueOf(someint));

    search.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            addRing();
            SharedPreferences.Editor editor = prefs.edit();
            editor.putInt("someint", redRing);
            editor.commit();
        }
    });
}

public void addRing() {
    redRing++;
}
}

感谢大家的帮助。

推荐答案

我解释了我做出更改的地方

I explained where I made changes

public class MainActivity extends Activity {

    Button search;
    TextView tvRing;

    //Making sharedpreferences and integers global for ease of use
    private SharedPreferences prefs;
    private int redRing, someint;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        search = (Button) findViewById(R.id.radar);
        tvRing = (TextView) findViewById(R.id.ring);

        //Someint default value is 0 if not ever saved before
        prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE);
        someint = prefs.getInt("someint", 0);
        tvRing.setText("Objects found : " + String.valueOf(someint));

        search.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Load the lates someint in onclick
                someint = prefs.getInt("someint", 0);

                //redring is the dummy integer to increment someint
                redRing=someint+1;
                //Save the incremented value
                SharedPreferences.Editor editor = prefs.edit();
                editor.putInt("someint", redRing);
                editor.commit();

                //To show the latest number on the tv
                lastNumber();
            }
        });
    }


    public void lastNumber() {
        prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE);
        someint = prefs.getInt("someint", 0);
        tvRing.setText("Objects found : " + String.valueOf(someint));
    }
}

这篇关于SharedPreferences在TextView中保存Int的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆