Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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 使用共享首选项登录Facebook_Android_Facebook_Android Studio_Sharedpreferences - Fatal编程技术网

Android 使用共享首选项登录Facebook

Android 使用共享首选项登录Facebook,android,facebook,android-studio,sharedpreferences,Android,Facebook,Android Studio,Sharedpreferences,我正在尝试在登录(使用Facebook)后保存用户详细信息。我可以获取数据,但无法保存。我正在使用SharedReferences,但无法保存它。当我进行其他活动时,数据不会丢失,但当我单击“上一步”按钮并重新打开此活动时,所有数据都会丢失。这是我的密码: Profilee.java 公共类概要文件扩展了片段{ 字符串email1,生日1,性别1; 图像视图图像视图; 静态int=1; TextView texty; 登录按钮; 线性布局用户输入; 私人CallbackManager Callb

我正在尝试在登录(使用Facebook)后保存用户详细信息。我可以获取数据,但无法保存。我正在使用SharedReferences,但无法保存它。当我进行其他活动时,数据不会丢失,但当我单击“上一步”按钮并重新打开此活动时,所有数据都会丢失。这是我的密码:

Profilee.java

公共类概要文件扩展了片段{
字符串email1,生日1,性别1;
图像视图图像视图;
静态int=1;
TextView texty;
登录按钮;
线性布局用户输入;
私人CallbackManager CallbackManager;
私有文本视图文本视图;
共享参考优先;
私人短信查看电子邮件、生日、性别;
私有AccessTokenTracker AccessTokenTracker;
个人档案跟踪器;
private FacebookCallback callback=新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
AccessToken AccessToken=loginResult.getAccessToken();
Profile Profile=Profile.getCurrentProfile();
GraphRequest GraphRequest=GraphRequest.NewMereRequest(loginResult.getAccessToken(),
新建GraphRequest.GraphJSONObjectCallback(){
@凌驾
未完成公共无效(JSONObject对象,GraphResponse响应){
JSONObject JSONObject=response.getJSONObject();
if(jsonObject!=null){
试一试{
email1=jsonObject.getString(“电子邮件”);
gender1=jsonObject.getString(“性别”);
birthday1=jsonObject.getString(“生日”);
}捕获(JSONException e){
e、 printStackTrace();
}
}
}
});
Bundle参数=新Bundle();
参数.putString(“字段”、“电子邮件、性别、生日”);
graphrequest.setParameters(参数);
graphrequest.executeAsync();
activateApp(getContext());
}
@凌驾
公开作废{
}
@凌驾
公共无效onError(FaceBook例外e){
}
};
公众简介({
//必需的空公共构造函数
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
sdkinInitialize(getActivity().getApplicationContext());
callbackManager=callbackManager.Factory.create();
Toast.makeText(getContext(),“Create”,Toast.LENGTH_SHORT.show();
pref=getContext().getSharedReferences(“,getContext().MODE_PRIVATE”);
pref.getString(“名称”、“asdfgh”);
pref.getString(“电子邮件”、“qwerty”);
pref.getString(“性别”、“zxcvb”);
accessTokenTracker=新的accessTokenTracker(){
@凌驾
更改当前AccessToken时受保护的无效(AccessToken oldToken、AccessToken newToken){
}
};
profileTracker=新的profileTracker(){
@凌驾
更改当前配置文件时受保护的无效(配置文件旧配置文件、配置文件新配置文件){
}
};
accessTokenTracker.startTracking();
profileTracker.startTracking();
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图v=充气机。充气(R.layout.fragment_Profile,容器,假);
按钮=(登录按钮)v.findviewbyd(R.id.login_按钮);
TextView按钮12=(TextView)v.findViewById(R.id.edit);
button12.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent i=新的Intent(getContext(),PrifileEdit.class);
i、 putExtra(“st”,电子邮件1);
星触觉(i);
}
});
texty=(TextView)v.findViewById(R.id.emo);
imageView=(imageView)v.findViewById(R.id.asd);
userinput=(LinearLayout)v.findviewbyd(R.id.userdetail);
int unicode=0x1F60E;
字符串emoji=getEmijoByUnicode(unicode);
String text=“未经允许,我们绝不在您的墙上张贴”;
texty.setText(text+emoji);
Toast.makeText(getContext(),“CreateView”,Toast.LENGTH_SHORT.show();
返回v;
}
公共字符串getEmijoByUnicode(整数unicode){
返回新字符串(Character.toChars(unicode));
}
@凌驾
已创建视图上的公共void(视图,捆绑保存状态){
super.onViewCreated(视图,savedInstanceState);
LoginButton LoginButton=(LoginButton)view.findViewById(R.id.login_按钮);
textView=(textView)view.findViewById(R.id.textView);
email=(TextView)view.findViewById(R.id.emailid);
gende=(TextView)view.findViewById(R.id.gender);
生日=(TextView)view.findViewById(R.id.birth);
loginButton.setReadPermissions(“电子邮件”);
setFragment(this);
registerCallback(callbackManager,callback);
Toast.makeText(getContext(),“ViewCreate”,Toast.LENGTH_SHORT.show();
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
new Handler().postDelayed(new Runnable()){
@凌驾
公开募捐{
onResume();
}
}, 2000);
}
公共无效显示消息(最终配置文件){
如果(itis==1){
if(profile!=nu
public class Profilee extends Fragment {

    String email1, birthday1, gender1;
    ImageView imageView;
    static int itis = 1;
    TextView texty;
    LoginButton button;
    LinearLayout userinput;
    private CallbackManager callbackManager;
    private TextView textView;
    SharedPreferences pref;
    private TextView email, birthday, gende;
    private AccessTokenTracker accessTokenTracker;
    private ProfileTracker profileTracker;


    private FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            AccessToken accessToken = loginResult.getAccessToken();
            Profile profile = Profile.getCurrentProfile();
            GraphRequest graphrequest = GraphRequest.newMeRequest(loginResult.getAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {

                        @Override
                        public void onCompleted(JSONObject object, GraphResponse response) {
                            JSONObject jsonObject = response.getJSONObject();
                            if (jsonObject != null) {
                                try {
                                    email1 = jsonObject.getString("email");
                                    gender1 = jsonObject.getString("gender");
                                    birthday1 = jsonObject.getString("birthday");
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    });
            Bundle parameters = new Bundle();
            parameters.putString("fields", "email, gender, birthday");
            graphrequest.setParameters(parameters);
            graphrequest.executeAsync();
            AppEventsLogger.activateApp(getContext());
        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException e) {

        }
    };

    public Profilee() {
        // Required empty public constructor
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(getActivity().getApplicationContext());
        callbackManager = CallbackManager.Factory.create();
        Toast.makeText(getContext(), "Create", Toast.LENGTH_SHORT).show();
        pref = getContext().getSharedPreferences("", getContext().MODE_PRIVATE);
        pref.getString("name", "asdfgh");
        pref.getString("email", "qwerty");
        pref.getString("gender", "zxcvb");
        accessTokenTracker = new AccessTokenTracker() {
            @Override
            protected void onCurrentAccessTokenChanged(AccessToken oldToken, AccessToken newToken) {
            }
        };

        profileTracker = new ProfileTracker() {
            @Override
            protected void onCurrentProfileChanged(Profile oldProfile, Profile newProfile) {
            }
        };

        accessTokenTracker.startTracking();
        profileTracker.startTracking();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_profilee, container, false);
        button = (LoginButton) v.findViewById(R.id.login_button);
        TextView button12 = (TextView) v.findViewById(R.id.edit);
        button12.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(getContext(), PrifileEdit.class);
                i.putExtra("st", email1);
                startActivity(i);
            }
        });
        texty = (TextView) v.findViewById(R.id.emo);
        imageView = (ImageView) v.findViewById(R.id.asd);
        userinput = (LinearLayout) v.findViewById(R.id.userdetail);
        int unicode = 0x1F60E;
        String emoji = getEmijoByUnicode(unicode);
        String text = "We will never post on your wall without permission ";
        texty.setText(text + emoji);

        Toast.makeText(getContext(), "CreateView", Toast.LENGTH_SHORT).show();
        return v;
    }


    public String getEmijoByUnicode(int unicode) {
        return new String(Character.toChars(unicode));
    }


    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        LoginButton loginButton = (LoginButton) view.findViewById(R.id.login_button);
        textView = (TextView) view.findViewById(R.id.textView);
        email = (TextView) view.findViewById(R.id.emailid);
        gende = (TextView) view.findViewById(R.id.gender);
        birthday = (TextView) view.findViewById(R.id.birth);
        loginButton.setReadPermissions("email");
        loginButton.setFragment(this);
        loginButton.registerCallback(callbackManager, callback);
        Toast.makeText(getContext(), "ViewCreate", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                onResume();
            }
        }, 2000);
    }

    public void displayMessage(final Profile profile) {
        if (itis == 1) {


            if (profile != null) {
                textView.setText(profile.getName());
                email.setText(email1);
                gende.setText(gender1);
                birthday.setText(birthday1);
                button.setVisibility(View.GONE);
                texty.setVisibility(View.GONE);
                userinput.setVisibility(View.VISIBLE);

                pref = getContext().getSharedPreferences("", getContext().MODE_PRIVATE);
                SharedPreferences.Editor editor = pref.edit();
                editor.putString("name", String.valueOf(textView));
                editor.putString("email", String.valueOf(email));
                editor.putString("gender", String.valueOf(gende));
                editor.commit();
            }
        }
    }

    @Override
    public void onStart() {
        super.onStart();
        Toast.makeText(getContext(), "Start", Toast.LENGTH_SHORT).show();
    }


    @Override
    public void onStop() {
        super.onStop();
        accessTokenTracker.stopTracking();
        profileTracker.stopTracking();
    }

    @Override
    public void onResume() {
        super.onResume();
        Profile profile = Profile.getCurrentProfile();
        displayMessage(profile);
        AppEventsLogger.activateApp(getContext());
    }
}
editor.putString("name", String.valueOf(textView)); // wrong
editor.putString("name", textView.getText().toString()); // right
String myEmail = pref.getString("email", "qwerty");
textView.setText(myEmail);