Android:无法解决方法createPackageContext()错误

时间:2015-03-29 07:01:50

标签: java android sharedpreferences

我是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包。

仍然无法解决此错误。我已经尝试了几个小时但没有帮助。

请帮助。提前致谢。

2 个答案:

答案 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的帮助:)