SharedPreferences - 保存按钮点击次数

时间:2014-02-15 17:46:43

标签: java android android-activity

我正在开发一个简单的“Click Countdown”应用程序,它基本上有一个图像按钮 功能。按下时,它会显示从10到9,8,7,...到0的点击次数。 我有一个问题,当我关闭应用程序时,再次启动点击次数 10.我写了一些想法,但它不起作用并且说:不能在不同方法中定义的内部类中引用非最终变量prefsEditor。 - (prefsEditor)有人可以帮助我吗?

这是我到目前为止的代码。我错了吗?

package com.example.testapp;

import com.example.testapp.R;

import android.os.Bundle;
import android.app.Activity;
import android.widget.ImageButton;
import android.view.View;
import android.widget.TextView;
import android.view.View.OnClickListener;
import com.google.ads.AdRequest;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import com.google.ads.AdView;

public class MainActivity extends Activity {

    ImageButton button1;
    TextView textView1;
    int counter = 100;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AdView adView = (AdView)this.findViewById(R.id.adView);
        adView.loadAd(new AdRequest());

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        SharedPreferences.Editor prefsEditor = prefs.edit();

        ImageButton imageButton;
        imageButton = (ImageButton) findViewById(R.id.button1);
        textView1 = (TextView) findViewById(R.id.textView1);
        button1 = (ImageButton) findViewById(R.id.button1);
        imageButton.setOnClickListener(new OnClickListener()
        {



            public void onClick(View v) {
                if (counter >= 1) {
                    counter--;
                    textView1.setText("" + counter);

                    prefsEditor.putInt("counter", counter);
                    prefsEditor.commit();

                } else if (counter == 0){
                    button1.setImageResource(R.drawable.image2);
                    counter--;

                    prefsEditor.putInt("counter", counter);
                    prefsEditor.commit();


                }


            }
        });
    }

}

1 个答案:

答案 0 :(得分:1)

make prefsEditor final

final SharedPreferences.Editor prefsEditor = prefs.edit();