Android 共享参考Facebook

Android 共享参考Facebook,android,facebook,Android,Facebook,因此,在主活动开始后,我得到了这个错误 04-04 17:30:37.041 7835-7835/net.example.ricardo.tcc2 E/AndroidRuntime: FATAL EXCEPTION: main 04-04 17:30:37.041 7835-7835/net.example.ricardo.tcc2 E/AndroidRuntime: Process: net.example.ricardo.tcc2, PID: 7835 04-04 17:30:37.041

因此,在主活动开始后,我得到了这个错误

04-04 17:30:37.041 7835-7835/net.example.ricardo.tcc2 E/AndroidRuntime: FATAL EXCEPTION: main
04-04 17:30:37.041 7835-7835/net.example.ricardo.tcc2 E/AndroidRuntime: Process: net.example.ricardo.tcc2, PID: 7835
04-04 17:30:37.041 7835-7835/net.example.ricardo.tcc2 E/AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {net.example.ricardo.tcc2/org.example.ricardo.tcc2.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
04-04 17:30:37.041 7835-7835/net.example.ricardo.tcc2 E/AndroidRuntime:     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4008)
04-04 17:30:37.041 7835-7835/net.example.ricardo.tcc2 E/AndroidRuntime:     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4039)
使用
SharedReferences
存储facebook id和名称

一旦创建,我就有了这个:

SharedPreferences sharedPrefs = getSharedPreferences("details", MODE_PRIVATE);

    nameStr = sharedPrefs.getString("name", null);
    idStr = sharedPrefs.getString("id", null);
public void onResume(){
        super.onResume();
        username = (TextView) findViewById(R.id.username);
        profileImage = (ProfilePictureView) findViewById(R.id.fotoPerfil);


        if (nameStr != null && idStr != null) {
            sessaoIniciada();
        }
    }
在简历中,我有以下几点:

SharedPreferences sharedPrefs = getSharedPreferences("details", MODE_PRIVATE);

    nameStr = sharedPrefs.getString("name", null);
    idStr = sharedPrefs.getString("id", null);
public void onResume(){
        super.onResume();
        username = (TextView) findViewById(R.id.username);
        profileImage = (ProfilePictureView) findViewById(R.id.fotoPerfil);


        if (nameStr != null && idStr != null) {
            sessaoIniciada();
        }
    }

有什么想法吗

从字符串首选项获取字符串时,需要键和默认值。默认值不能为null,因此请将其设置为空字符串或某个随机字符串

修改如下:

SharedPreferences sharedPrefs = getSharedPreferences("details", MODE_PRIVATE);

    nameStr = sharedPrefs.getString("name", "empty");
    idStr = sharedPrefs.getString("id", "empty");

希望对你有帮助

我得到了正确的名称和id。只是无法将其设置为txtview和profpicture。您的
TextView
为空,请仔细检查您是否正在查找正确的id。添加一个检查
if(username==null)
并在if中打印一条日志语句,您的堆栈跟踪表明
TextView
在您的代码中为空。它设置了文本。但是仍然会出现相同的错误。您是否正在尝试在ImageView中设置文本?否。它在代码中。字符串名称和字符串id。setText名称和id是profileImage.setProfileId(idStr)…为什么不将id作为整数传递?下面是它得到的结果。我有一个facebook登录活动。如果我登录并返回mainActivity,它会在side_nav_菜单上显示名称和prof图片。如果我关闭应用程序并再次启动。facebook仍在登录。但不显示图片或名称。我希望此sharedprefs将名称包含为字符串,以便可以再次将名称设置为相同的textView。以及存储的id和字符串,以便我可以在profilepicture id上设置id。