Android:获取错误“无法解析GetSharedReferences(java.lang.String,int)”
我试图访问非活动类中的SharedReferences,但我总是遇到这个错误cannot resolve getSharedPreferences(java.lang.String, int)
。但是当我在正常活动类中使用GetSharedReferences时,我没有得到这个错误
有人知道怎么解决这个问题吗
这是我的密码:
public class ConnectionClass {
SharedPreferences pref = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
String ip = pref.getString("serverIP", "");
// String ip = "";
// String ip = server_IP;
String classDriver = "net.sourceforge.jtds.jdbc.Driver";
String db = "passoDB";
String un = "sa";
String password = "dhen1234";
@SuppressLint("NewApi")
public Connection CONN(Context context) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection conn = null;
String ConnURL = null;
try {
Class.forName(classDriver);
ConnURL = "jdbc:jtds:sqlserver://" + ip + ";"
+ "databaseName=" + db + ";user=" + un + ";password="
+ password + ";";
conn = DriverManager.getConnection(ConnURL);
} catch (SQLException se) {
Log.e("ERRO", se.getMessage());
} catch (ClassNotFoundException e) {
Log.e("ERRO", e.getMessage());
} catch (Exception e) {
Log.e("ERRO", e.getMessage());
}
return conn;
}
}
# 1 楼答案
你必须把它写进你的方法中
或者你也可以把它写进Constructor
# 2 楼答案
你需要在一个
Context
中,或者有一个包含Context
的变量来调用这个方法# 3 楼答案
是的,正如simon所说,访问共享首选项需要上下文,所以为了使代码正常工作,我将添加这一行
我没有正确地缩进,希望能有所帮助
在调用类时,您应该这样调用: