[英]In this Gridview show error java.lang.NullPointerException
[英]java.lang.NullPointerException on show toast
我正在使用OkHttp庫來訪問url ,並且我想在返回給定消息時顯示Toast 。 問題是當我嘗試查看toast 時,顯示java.lang.NullPointerException
錯誤。 你能幫助我嗎?
對不起,我的英語不好。
public void sendtows(String usr_e, String usr_p) throws Exception{
String stResponse;
Request request = new Request.Builder()
.url("http://127.0.0.1/l.php?useremail=" + usr_e + "&userpassword=" + usr_p)
.build();
Response response = client.newCall(request).execute();
stResponse = response.body().string();
if(response.isSuccessful()){
if(stResponse.contains("OK")){
Log.d("Login", "Ok");
} else {
Toast toastErr = Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT);
toastErr.show();
}
} else {
Log.d("ERRO", "erro");
}
}
不要工作! 日志:
09-14 16:47:49.802 4342-4374/com.android.vending D/Finsky: [222] AppStatesReplicator.handleContentSyncResponse:完成 0 個帳戶內容同步,0 個成功。 09-14 16:47:49.802
4342-4342/com.android.vending D/Finsky:[1] 5.onFinished:安裝狀態復制成功。 09-14 16:48:08.112
2487-2532/system_process E/InputDispatcher:運動事件有無效的指針計數0; 值必須在 1 到 16 之間。09-14 16:48:08.182
2487-2532/system_process E/InputDispatcher:運動事件有無效的指針計數0; 值必須在 1 到 16 之間。09-14 16:48:08.182
1289-1323/? D/audio_hw_primary﹕發現 /dev/snd/pcmC0D0p 09-14 16:48:08.242 1289-1323/? W/audio_hw_primary: out_write() 限制睡眠時間 112539 到 46439 09-14 16:48:08.312 1289-1323/? W/audio_hw_primary:out_write() 限制睡眠時間 65759 到 46439 09-14 16:48:09.652 4227-4227/com.lavie.conflife D/Errorx:java.lang.NullPointerException 09-14 16:452:1
2657-3291/com.bluestacks.bstfolder D/dalvikvm:GC_FOR_ALLOC 釋放 740K,29% 釋放 2774K/3868K,暫停 0 毫秒,總共 0 毫秒
onClick 調用 sendtows
public void sendData(View view){ //btLogin click
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
if(checkInternetConnection()){
try{
usr_email = (EditText)findViewById(R.id.etEmail);
usr_password = (EditText)findViewById(R.id.etPassword);
final String email = usr_email.getText().toString();
final String pass = usr_password.getText().toString();
if (!isValidEmail(email)) {
usr_email.setError(getString(R.string.invalid_email));
} else if (!isValidPassword(pass)) {
usr_password.setError(getString(R.string.invalid_password));
} else {
new LoginActivity().sendtows(usr_email.getText().toString(), usr_password.getText().toString());
}
} catch (Exception e){
Log.d("Errorx", e.toString());
}
} else {
CharSequence text = "Offline";
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
您在Toast中使用getApplicationContext() ,這可能會給您NullPointerException 。 所以,
如果您使用的是Fragment,請使用:
Toast toastErr = Toast.makeText(getActivity(), "error", Toast.LENGTH_SHORT);
toastErr.show();
如果您使用的是Class,則創建一個可以傳遞Context並在Toast 中使用該Context的構造函數,如下所示:
//Constructor to pass context
public Your_ClassName(Context context){
this.context = context;
}
Toast toastErr = Toast.makeText(context, "error", Toast.LENGTH_SHORT);
toastErr.show();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.