SharedPreferencesを通報します - どのように使用するには?

Turwath:

私はImageViewのをタップすると上昇カウンターでアプリを作ってるんです。動作することが、今、私はSharedPreferencesオブジェクトにカウンターを保存したいです。

私は明らかに動作しないのonCreateメソッド、内部のSPオブジェクトを初期化しようとしました。私はグローバルsp.getIntを(...)を使用しようとすると、それはどちらか動作しません。(それが初期化される前に、SPオブジェクトから整数を取得しようとすると)問題がある理由を私は理解しますが、私はそれを解決する方法がわかりません。

public class MainActivity extends AppCompatActivity {

    int counterint;
    TextView counter;
    String stringnumber;
    SharedPreferences sharedPreferences = this.getSharedPreferences("com.example.hugelon", Context.MODE_PRIVATE);

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

        sharedPreferences.getInt("hugcounter", 0);
    }


    public void hughim(View view){

        counter = findViewById(R.id.countertv);

        stringnumber = counter.getText().toString();
        counterint = Integer.parseInt(stringnumber);
        counterint++;
        counter.setText(Integer.toString(counterint));

        sharedPreferences.edit().putInt("hugcounter", counterint);

    }

}

java.lang.RuntimeException:インスタンス化活性ComponentInfo {com.example.hugelon / com.example.hugelon.MainActivity}できません:java.lang.NullPointerExceptionが仮想メソッドを起動しようと「android.content.SharedPreferences android.content.Context。 NULLオブジェクト参照にgetSharedPreferences(java.lang.Stringで、INT)」

java.lang.NullPointerExceptionが:によって引き起こさヌルオブジェクト参照に「(java.lang.Stringで、INT)android.content.SharedPreferences android.content.Context.getSharedPreferences」仮想メソッドを呼び出すしよう

Lakhwinderシン:

ジョヴァンニの答えは、あなただけのOnCreateで初期値を設定していない、正しいです

      public class MainActivity extends AppCompatActivity {

            int counterint;
            TextView counter;
            String stringnumber;
            SharedPreferences sharedPreferences;

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
    counter = findViewById(R.id.countertv);
        sharedPreferences = this.getSharedPreferences("com.example.hugelon", Context.MODE_PRIVATE);

                stringnumber=String.valueOf(sharedPreferences.getInt("hugcounter", 0));
counter.setText(stringnumber);
            }


            public void hughim(View view){

                counter = findViewById(R.id.countertv);

                stringnumber = counter.getText().toString();
                counterint = Integer.parseInt(stringnumber);
                counterint++;
                counter.setText(Integer.toString(counterint));

                sharedPreferences.edit().putInt("hugcounter", counterint);

            }

        }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=315614&siteId=1