簡體   English   中英

Android If Host 404顯示Toast

[英]Android If Host 404 show Toast

沒有數據,因為我的服務器宕機了,我想讓烤面包按摩“服務器再試一次”,但是我總是有默認的adnroid 404按摩,例如(Error:404 error loading url somesite.com),但是我需要自己的烤面包來進行展示,不想顯示我的主機名。 我用try cath

我的搜索按鈕:

  button_search.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            InputMethodManager imm = (InputMethodManager)getSystemService(
                      Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(search_input.getWindowToken(), 0);
                msgLoading.show();
            runOnUiThread(new Runnable() {
                  public void run() {


            new Thread(new Runnable() { 
                public void run() { 
                 try {
                     list_songs = wrzuta_class.search(search_input.getText().toString());
                    } catch (Throwable e) {
                    show_error("Error: "+e.getMessage());
                    }

                refresh_list();

                            } 
                    }).start(); 

                    }
            });
        }
    });

我的refresh_list:

 public void refresh_list(){
    runOnUiThread(new Runnable() {
          public void run() {
    List<Map<String, String>> data = new ArrayList<Map<String, String>>();
     try {
        for (song_details song_item_loop : list_songs) {
            Map<String, String> datum = new HashMap<String, String>(2);
            datum.put("title", song_item_loop.title);
            datum.put("url", song_item_loop.url);
            datum.put("description", song_item_loop.size);
            data.add(datum);    
        }
     } catch (NullPointerException ex) { 
         Toast.makeText(MainActivity.this, 
                    "server down try again", Toast.LENGTH_LONG).show();
        } 

我也嘗試過:

  public void refresh_list(){
    runOnUiThread(new Runnable() {
          public void run() {
    List<Map<String, String>> data = new ArrayList<Map<String, String>>();
    if (list_songs == null || list_songs.size() == 0) {
         Toast.makeText(MainActivity.this, 
                        "server down try again", Toast.LENGTH_LONG).show();
    } else {

         for (song_details song_item_loop : list_songs) {
                Map<String, String> datum = new HashMap<String, String>(2);
                datum.put("title", song_item_loop.title);
                datum.put("url", song_item_loop.url);
                datum.put("description", song_item_loop.size);
                data.add(datum);    
            }
     } 

我仍然有(Error:404 error loading url somesite.com)...如何替換此錯誤

固定:

我補充說:

    public void show_error(final String valString){
    runOnUiThread(new Runnable() {
          public void run() {
              Toast.makeText(MainActivity.this, 
                        "server down try again", Toast.LENGTH_LONG).show();
          }
        });
}

這是因為for循環不會引發異常,因此不會轉到您的捕獲短語。 我建議您在for循環之前檢查是否為空,並在其中顯示吐司消息。

if (list_songs == null || list_songs.size() == 0) {
     Toast.makeText(MainActivity.this, 
                    "server down try again", Toast.LENGTH_LONG).show();
 return;
}

似乎您在show_error()方法中顯示了吐司。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM