2016-08-15 39 views
0

我有一个登录类,它扩展了AppCompatActivity,但是当我想检查我的数据并使用getSharedPreferences()时,它有运行时错误并将强制停止!我该怎么办?如何在AppCompatActivity中使用getSharedPreferences

这里是我的代码:

package biz.test.internet; 
import android.content.Context; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.preference.PreferenceActivity; 
import android.content.Intent; 
import android.preference.PreferenceFragment; 
import android.support.v4.content.SharedPreferencesCompat; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.preference.PreferenceManager; 
import android.content.Intent; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
import java.util.Random; 

public class Login extends AppCompatActivity { 
    SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 
    }   
} 

需要注意的是,如果我禁用SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);然后运行时错误将是固定的,如果我使用的PreferenceActivity代替AppCompatActivitysetContentView方法有错误!

我不知道如何使用它们。

谢谢。

+0

你能分享logcat错误信息吗? –

回答

2

您必须将拨打您的onCreate方法。

SharedPreferences sharedpreferences; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 
    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
} 
+0

谢谢你现在的作品,这是3小时我正在寻找它! :)是什么原因? – Saeid

+0

@Saeid因为你需要一个Context来获取你在onCreate之后拥有的pref。 –

相关问题