Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SharedReferences不起作用(“无法解析方法';getPreferences';”)_Java_Android - Fatal编程技术网

Java SharedReferences不起作用(“无法解析方法';getPreferences';”)

Java SharedReferences不起作用(“无法解析方法';getPreferences';”),java,android,Java,Android,您好,我目前正在尝试将一个简单的整数值从EditText保存到SharedReferences,以便我可以在任何活动中访问它。我试着跟随谷歌教程,但我无法让它工作。我最终收到错误消息“无法解析方法'getPreferences'”。我意识到还有其他关于SharedReference的线索,但我似乎无法理解它们 另外,如果您能帮助我找到一种比catch语句更好的方法来避免NumberFormatException,请告诉我。再次感谢!非常感谢您的帮助 爪哇 }而不是 SharedReference

您好,我目前正在尝试将一个简单的整数值从EditText保存到SharedReferences,以便我可以在任何活动中访问它。我试着跟随谷歌教程,但我无法让它工作。我最终收到错误消息“无法解析方法'getPreferences'”。我意识到还有其他关于SharedReference的线索,但我似乎无法理解它们

另外,如果您能帮助我找到一种比catch语句更好的方法来避免NumberFormatException,请告诉我。再次感谢!非常感谢您的帮助

爪哇

}而不是
SharedReferences sharedPref=this.getPreferences(Context.MODE\u PRIVATE)
使用
SharedPreferences sharedPref=ExamPrepHome.this.getPreferences(Context.MODE\u PRIVATE)


这是因为在匿名类中,“this”表示该内部类,而不是活动对象。您必须使用数字格式异常进行检查,以避免在检索对象时崩溃。

我需要等待一分钟,它才会允许我接受
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import static com.managergmail.time.finite.finitemanager02.R.id.textViewTest;


public class ExamPrepHome extends AppCompatActivity {

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

    Button buttonSaveNumberOfExams = (Button) findViewById(R.id.buttonSaveNumberOfExams);


    try{
           final  EditText numberOfExamsInput = (EditText) findViewById(R.id.numberOfExamsInput);
           final int numberOfExamsValue = Integer.valueOf(numberOfExamsInput.getText().toString());


           buttonSaveNumberOfExams.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
                        SharedPreferences.Editor editor = sharedPref.edit();
                        editor.putInt(getString(R.string.saved_number_of_exams), numberOfExamsValue);
                        editor.commit();
                    }

                });

           }catch(NumberFormatException ex){

                System.out.println("Value at TextView is not a valid integer");

            }



}