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。