2015-12-31 94 views
-1

我無法通過onRefresh處理程序在我的UI線程上刷新我的列表(網絡線程,因此沒有UI線程),這是我試過的代碼:無法使用下拉刷新刷新列表(mSwipeRefreshLayout)

@Override 
public void onRefresh() { 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        final SharedPreferences sharedPrefs = AktuellesActivity.this.getSharedPreferences("gemeindeMuckendorf", Context.MODE_PRIVATE); 
        List<News> newsList = Utils.getNewsFromHTML(Utils.getHTML("www.muckendorf-wipfing.at/22-0-Aktuelle+Meldungen.html")); 
        SharedPreferences.Editor edit = sharedPrefs.edit(); 
        edit.putString("aktuellesList", new ObjectSaver().saveString(newsList)); 
        edit.commit(); 
        final List<String> headers = new ArrayList<String>(); 
        for(News news : newsList) 
         headers.add(news.getHeader()); 
        headers.add("Test"); 
        AktuellesActivity.this.runOnUiThread(new Runnable() { 
         @Override 
         public void run(){ 
          lv.setAdapter(new ArrayAdapter(AktuellesActivity.this, android.R.layout.simple_list_item_1, headers)); 
          lv.invalidate(); 
         } 
        }); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
       mSwipeRefreshLayout.setRefreshing(false); 
      } 
     }, 2000); 
} 

我我有一個列表,獲取字符串,把它放在一個列表,然後我想讓它變得名單,以取代舊名單,但顯然它不會工作..沒有做任何事情。我無法準確測試它,但我確定它不起作用。有人能幫助我嗎? 謝謝!

+0

HTML = Utils.getHTML( 「http://www.muckendorf-wipfing.at/22-0-Aktuelle+Meldungen.html」);從uiThread中刪除它。 –

+0

@tinysunlight它現在出來,仍然不起作用。 – atjahfjvda

回答

0

嘗試此

refreshLayout = (PullRefreshLayout) getView().findViewById(R.id.swipeRefreshLayout); 
refreshLayout.setOnRefreshListener(new PullRefreshLayout.OnRefreshListener() { 
       @Override 
       public void onRefresh() { 
        refreshLayout.setRefreshing(true); 
        new Handler().postDelayed(new Runnable() { 

         @Override 
         public void run() { 

         String html = ""; 
            try { 
             html = Utils.getHTML("http://www.muckendorf-wipfing.at/22-0-Aktuelle+Meldungen.html"); 
             List<News> news = Utils.getNewsFromHTML(html); 
             List<String> headers = new ArrayList(); 
             for (int i = 0; i < news.size(); i++) 
              headers.add(news.get(i).getHeader()); 
             lv.setAdapter(new ArrayAdapter(AktuellesActivity.this, android.R.layout.simple_list_item_1, headers)); 
             lv.invalidate(); 
            } catch (Exception e) { 
             e.printStackTrace(); 
            } 
             refreshLayout.setRefreshing(false); 
         } 
        }, 2000); 
       } 
      }); 
+0

這只是寫作的另一種方法,不是嗎?該圈子正在爲我旋轉,它只是不更新​​列表... – atjahfjvda

+0

已檢查數據是來自該Url? –

+0

你是什麼意思? – atjahfjvda