Я пытаюсь получить информацию о сервере sql из SharedPreferences, но не могу заставить его работать во мне connectioclass, если бы я сделал то же самое в расширенном классе EEN, это сработает, но для этого кода я не буду нужен расширенный класс:Получить SharedPreferences из не расширенного класса
Normaly я использую:
PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences sharedPreferences =
так я судимый:
Context context = this;
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
и:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Но не работает
Тхи мой код:
public class ConnectionClass{
PreferenceManager.getDefaultSharedPreferences(this);
String servername = sharedPreferences.getString("SQLSERVER", "");
String databasenaam = sharedPreferences.getString("SQLDATABASE", "");
String serverusernaam = sharedPreferences.getString("SQLUSERNAAM", "");
String serverpassword = sharedPreferences.getString("SQLPASSWORD", "");
String ip = servername;
String classs = "net.sourceforge.jtds.jdbc.Driver";
String db = databasenaam ;
String un = serverusernaam;
String password = serverpassword ;
@SuppressLint("NewApi")
public Connection CONN() {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection conn = null;
String ConnURL = null;
try {
Class.forName(classs);
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;
}
}
вы можете попробовать это http://stackoverflow.com/questions/40894989/sharedpreferences-in-non-activity-class-nullpointerexception/40895108#40895108 –
передать контекст из вызывающей активности –
Или просто извлечь идентификатор пользователя и пароль из SharedPreferences в основной деятельности, а затем передайте их методу «не расширенный класс», который извлекает данные. –