当我正在调用fromcheckpass(mcontext)
时,我会得到nullpointerexception。哪里有错误。救救我!
来自onClick()
我正在呼叫fromcheckpass(mcontext)
。
public void onClick(View v) {
InboxActivity inboxActivity = new InboxActivity();
inboxActivity.fromcheckpass(CheckPass.this);
}
如何调用fromcheckpass(mcontext)
方法?
public void fromcheckpass(Context mcontext) {
Toast.makeText(mcontext, "WEL COME", Toast.LENGTH_LONG).show();
Db = new MySQLiteHelper(this);
String DbInsert = Utils.getPreferences("DbInsert", this);
if (!DbInsert.equalsIgnoreCase("Inserted")) {
SaveDataInDB();
}
MessageListView = (ListView) findViewById(R.id.lvInbox);
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0154A4")));
bar.setTitle(R.string.app_name);
bar.setTitle(Html.fromHtml("<font color='#ffffff'>WeText </font>"));
bar.setIcon(R.drawable.icon_top);
Utils.getOverflowMenu(this);
attachListeners();
dataList = Utils.getLatestMessageOfAllContacts(InboxActivity.this);
if (dataList.isEmpty()) {
Toast.makeText(getApplicationContext(), "NO MESSAGES", Toast.LENGTH_LONG).show();
} else {
iAdapter = new Adapter(InboxActivity.this, dataList);
MessageListView.setAdapter(iAdapter);
}
}
每当我从checkpass(mcontex)方法调用时,应用程序崩溃。这是我的logcat:
Process: com.futureappspk.WeTextFree, PID: 29065
java.lang.NullPointerException
at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:186)
at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:369)
at com.futureappspk.WeTextFree.Utils.getPreferences(Utils.java:432)
at com.futureappspk.WeTextFree.InboxActivity.fromcheckpass(InboxActivity.java:130)
at com.futureappspk.WeTextFree.CheckPass$1.onClick(CheckPass.java:40)
这是我的util类方法,它调用fromcheckpass(mcontext)
public static String getPreferences(String key, Context context) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
String userName = sharedPreferences.getString(key, "UserName");
return userName;
}
答案 0 :(得分:0)
请试试这个
我认为你的CheckPass不是你的活动
因此正确地传递上下文像
getActivity()或getApplicationContext();
在onClick方法中
希望它有所帮助
答案 1 :(得分:0)
通知您错误在此行
tearoff=False
可能的原因
您必须将String DbInsert = Utils.getPreferences("DbInsert", this);
与getSharedPreferences
类的实例一起使用
Context
您尚未显示ctx.getSharedPreferences("MY_PREF",0);
类,但我猜Utils
方法是类的静态方法,您直接调用它而不初始化任何getPreferences
应用程序。因此,我建议您初始化Context
类Context
中的Constructor
,并仅将Utils
方法用于getSharedPreferences
类的实例。
<强>更新强>
尽量不要让它静止,做这样的事情
Utils