我是Android新手。使用Android Studio,我创建了两个应用程序应用程序,我需要将共享首选项值从一个应用程序发送到另一个应用程序。我尝试过以下代码:
应用-I Java文件:
SharedPreferences sharedPreferences = getSharedPreferences("swlpref",Context.MODE_WORLD_READABLE);
final String password = sharedPreferences.getString(PASSWD, "empty");
final String rpassword = sharedPreferences.getString(RPASSWD, "empty");
if (password.equals(rpassword)) {
TextView textViewPass = (TextView) findViewById(R.id.pass_pref_text);
textViewPass.setText(String.valueOf(password));
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("swlstring", password);
editor.commit();
}
else
{
Toast.makeText(getBaseContext(), "Password does not match", Toast.LENGTH_SHORT).show();
}
APPLICATION-II Java文件:
power.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Context con;
try {
con = createPackageContext("com.gokul.security", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences pref = con.getSharedPreferences(
"swlpref", Context.MODE_PRIVATE);
String data = pref.getString("swlstring", "No Value");
}
catch (PackageManager.NameNotFoundException e) {
Log.e("Not data shared", e.toString());
}
}
});
APPLICATION-I没有错误。但问题出在Application-II,其中
无法解析方法createPackageContext()
显示错误。
我还导入了android.content.Context包。
仍然无法解决此错误。我已经尝试了几个小时但没有帮助。
请帮助。提前致谢。
答案 0 :(得分:0)
默认情况下,共享偏好设置是应用专用的。为什么不尝试在SD卡中创建数据库?
刚刚看到你定义了Mode_private,它不允许在包
之间共享它们答案 1 :(得分:0)
我解决了。 我创建了一个新的java活动文件。并将Application-II的代码粘贴到该活动中。使用Application-II中的“Intent”我能够解决这个问题。
power.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(v.getContext(),
Check.class);
startActivityForResult(i, 0);
“Check.java”是我的新java活动。在那里粘贴那些共享首选项语句并且createPackageContext()方法显示没有错误。
感谢Kay的帮助:)