私はこれを長い間機能させようとしてきましたが、まだ見つけることができるすべての質問をチェックしました。基本的に、隣の TextView に表示される int に 1 を追加するボタンがあります。アプリを閉じたときにこの int を保持したいので、sharedpreferences が最良の選択肢のようです (sqlite も検討しましたが、アプリを更新せずに編集できるかどうかはわかりません。これは簡単に見えます) )。
したがって、私の問題は、intが正常に増加しますが、戻るボタンを押すかアプリを閉じると0にリセットされることです。
これがすべて起こっているアクティビティです。編集:これはこれまでの私のコードです(その他のifを含む)
package com.example.myapp;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class ThirdScreenActivity extends Activity {
public int intPlusOne;
public int intPlusOne2;
public static final String PREFS = "MyPrefsFile";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen2);
//Sets the title to recipe name
TextView t = ((TextView)findViewById(R.id.textviewPosition));
Intent intent = getIntent();
String position = intent.getStringExtra("position");
t.setText(position);
//Sets the correct recipe
if ("ListView Item 1".equals(position)) {
TextView t1 = ((TextView)findViewById(R.id.TextView1));
t1.setText(R.string.string1, null);
SharedPreferences sharedPrefs = this.getSharedPreferences(PREFS, MODE_PRIVATE);
intPlusOne = sharedPrefs.getInt("intPlusOneSaved", 0);
TextView PlusOne = ((TextView)findViewById(R.id.plusonetextview));
PlusOne.setText(String.valueOf(intPlusOne));
Button PlusOneButton = ((Button)findViewById(R.id.plusonebutton));
PlusOneButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
intPlusOne++;
TextView PlusOne = ((TextView)findViewById(R.id.plusonetextview));
PlusOne.setText(String.valueOf(intPlusOne));
}
});
}
else if ("ListView Item 2".equals(position)) {
TextView t1= ((TextView)findViewById(R.id.TextView1));
t1.setText(R.string.string2, null);
SharedPreferences sharedPrefs = this.getSharedPreferences("PREFS", MODE_PRIVATE);
intPlusOne2 = sharedPrefs.getInt("intPlusOne2Saved", 0);
TextView PlusOne = ((TextView)findViewById(R.id.plusonetextview));
PlusOne.setText(String.valueOf(intPlusOne2));
Button PlusOneButton = ((Button)findViewById(R.id.plusonebutton));
PlusOneButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
intPlusOne2++;
TextView PlusOne = ((TextView)findViewById(R.id.plusonetextview));
PlusOne.setText(String.valueOf(intPlusOne2));
}
});
}
public void onPause() {
super.onPause();
SharedPreferences sharedPrefs = this.getSharedPreferences(PREFS, MODE_PRIVATE);
Editor editor = sharedPrefs.edit();
editor.putInt("intPlusOneSaved", intPlusOne);
editor.commit(); //also tried removing this line
editor.putInt("intPlusOne2Saved", IntPlusOne2);
editor.commit();
}
}
詳しく教えていただけると助かります!