2016-12-09 67 views
0

我正在使用VolleyRequest來提取數據。但是,如果出現錯誤,則會顯示一條消息,使用Snackbar通知用戶互聯網連接速度慢,並且可以重試。然而,單擊「操作」按鈕不會執行任何操作,而是Snackbar會消失並且不會調用該方法。小吃店顯示在請求的onErrorResponse()內。
我該如何解決這個問題?這裏是我的代碼:
Volley的onErrorResponse中的小吃店不執行操作代碼

@Override 
public void onErrorResponse(VolleyError error) { 
    Log.e(TAG, error.toString()); 

    hasInternet = false; 
    snackbar = Snackbar.make(coordinator, "Slow internet connection detected", Snackbar.LENGTH_INDEFINITE) 
      .setAction("RETRY", new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        makeRequest(); 
       } 
      }); 
    snackbar.show(); 
} 

回答

0

試試這個。

@Override 
public void onErrorResponse(VolleyError error) { 
    Log.e(TAG, error.toString()); 

    // Use getActivity().runOnUiThread(...) if it's a fragment. 
    // In the case of activity 
    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      hasInternet = false; 
      snackbar = Snackbar.make(coordinator, "Slow internet connection detected", Snackbar.LENGTH_INDEFINITE) 
        .setAction("RETRY", new View.OnClickListener() { 
         @Override 
         public void onClick(View view) { 
          makeRequest(); 
         } 
        }); 
      snackbar.show(); 
     } 
    } 

} 
+0

似乎不起作用 – Manny265