[英]facebook like button on android application is not working properly
[英]Counter Button in Android application is not working properly with SharedPreferences
我遇到有關保存由Button
修改的整數的問題。 當按下Button
,整數值上升; 但是,當我關閉並重新打開應用程序時,不會保存整數。 我將不勝感激任何幫助。
public class MyActivity extends Activity implements View.OnClickListener {
public static final String PREFS_NAME = "MyPrefsFile";
Button btn1;
Button btn2;
Button btn3;
Button btn4;
Button save;
TextView textTitle;
EditText scoreText;
EditText scoreText2;
int counter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
btn1 = (Button) findViewById(R.id.add);
btn2 = (Button) findViewById((R.id.sub));
scoreText = (EditText) findViewById(R.id.intro);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
scoreText.setText(prefs.getString("autosave" , ""));
scoreText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// Do nothing
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Do nothing
}
@Override
public void afterTextChanged(Editable s) {
prefs.edit().putString("autosave", s.toString()).commit();
}
});
@Override
public void onClick(View v) {
if (v == btn1) {
counter++;
scoreText.setText(Integer.toString(counter));
} else if (v == btn2) {
counter--;
scoreText.setText(Integer.toString(counter));
}
}
}
首先,嘗試將commit()行移至onTextChanged()回調並添加Log.d()調用以幫助您進行調試。
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.d("onTextChanged", s.toString());
prefs.edit().putString("autosave", s.toString()).commit();
}
修改文本后檢查您的日志,以確保觸發了回調。
如果那不起作用,我建議將commit()行移到onClick()回調中。
@Override
public void onClick(View v) {
if (v == btn1) {
counter++;
scoreText.setText(Integer.toString(counter));
prefs.edit().putString("autosave", scoreText.getText()).commit();
} else if (v == btn2) {
counter--;
scoreText.setText(Integer.toString(counter));
prefs.edit().putString("autosave", scoreText.getText()).commit();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.