Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 另一个包中的共享首选项_Android - Fatal编程技术网

Android 另一个包中的共享首选项

Android 另一个包中的共享首选项,android,Android,我是android开发新手。有没有办法从另一个包扩展类?我试图从另一个包中获取共享首选项,尽管我能够访问同一个包中的类之间的共享首选项。但是,在不同的包中,我不知道应该如何执行editer.commit或编辑另一个包中的共享首选项。请帮助。尝试此代码 将字符串放入SharedReference SharedPreferences USERNAME_and_PASSWORD; SharedPreferences.Editor editor; USERNAME_an

我是android开发新手。有没有办法从另一个包扩展类?我试图从另一个包中获取共享首选项,尽管我能够访问同一个包中的类之间的共享首选项。但是,在不同的包中,我不知道应该如何执行editer.commit或编辑另一个包中的共享首选项。请帮助。

尝试此代码

将字符串放入SharedReference

    SharedPreferences USERNAME_and_PASSWORD;
            SharedPreferences.Editor editor;

USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key,
                MODE_PRIVATE);
        editor = USERNAME_and_PASSWORD.edit();
                editor.putString(user_name_key, userName);
                editor.commit();
    SharedPreferences USERNAME_and_PASSWORD;
 USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key,
                    MODE_PRIVATE);
     USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key,
                        MODE_PRIVATE);
    String Return_Password = USERNAME_and_PASSWORD.getString(pass_word_key,
                    "Guest");
从共享首选项获取字符串

    SharedPreferences USERNAME_and_PASSWORD;
            SharedPreferences.Editor editor;

USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key,
                MODE_PRIVATE);
        editor = USERNAME_and_PASSWORD.edit();
                editor.putString(user_name_key, userName);
                editor.commit();
    SharedPreferences USERNAME_and_PASSWORD;
 USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key,
                    MODE_PRIVATE);
     USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key,
                        MODE_PRIVATE);
    String Return_Password = USERNAME_and_PASSWORD.getString(pass_word_key,
                    "Guest");

使用getsharedpref类u获取共享首选项数据,使用PracSharePrefactity类设置数据。这些用于检索和编辑同一个包中的共享首选项,我尝试的是从另一个包中的类访问共享首选项。例如,如果我使用代码USERNAME_和密码=getSharedPreferenced_preference_key,MODE_PRIVATE获取SharedReferences;从另一个包中的另一个类中,它将无法检测变量Shared_preference_key,因此它将无法工作。是否有一种方法可以从另一个包的SharedReferences访问?我们可以跨不同的包访问它。在访问共享首选项字符串shared\u preference\u key=共享首选项之前添加这些行;共享引用用户名和密码;用户名\和\密码=GetSharedPreferenced\首选项\密钥,模式\私有;String Return\u Password=用户名和密码。getStringpass\u word\u key,Guest;这个答案显然是错误的!即使在编辑之后,也无法解决所有问题。我想知道为什么它被接受。。。它还因为标识符的命名方式而令人困惑。GetSharedReferences的第一个参数是文件名,而不是键
package com.sharedpref;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class PracSharePrefActivity extends Activity {

    private SharedPreferences settings;
    private String name,subject;
    private Button btnSave;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        settings = PreferenceManager.getDefaultSharedPreferences(this);

        name = settings.getString("Name","");
        subject = settings.getString("Subject", "");

        Log.e("Name0==",name);
        Log.e("Subject0==",subject);


        String yourName="Deval";
        String yourSubject="Android";

        SharedPreferences.Editor editor = settings.edit();

        editor.putString("Name",yourName);
        editor.putString("Subject", yourSubject);

        editor.commit();

        Log.e("Name 1==",settings.getString("Name", ""));
        Log.e("Subject 1==",settings.getString("Subject", ""));       


        btnSave=(Button)findViewById(R.id.btnsave);
        btnSave.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent i=new Intent(PracSharePrefActivity.this,GetSharedPref.class);
                startActivity(i);
            }
        });

    }



}
"GetSharedPref" Class
package com.sharedpref;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;

public class GetSharedPref extends Activity {
    private SharedPreferences preferences;
    private String name,subject;
     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.pref);          

            preferences = PreferenceManager.getDefaultSharedPreferences(this);
            name = preferences.getString("Name", "");
            subject=preferences.getString("Subject", "");

            Log.e("Name:  ",preferences.getString("Name", ""));
            Log.e("Subject:  ",preferences.getString("Subject",""));

            preferences = PreferenceManager.getDefaultSharedPreferences(this);    
     }
}