2017-06-19 5 views
0

AndroidでJson 1.9.2ライブラリを使用して、Webサイトからデータを解析し、結果データをAndroidのTextViewに設定しました。しかし、私はTextViewで取得したデータを設定することができません。Android Text ViewにJsonクエリのデータが入力されない

関連するコードを共有しています。私は断片を使用しています。

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    tv1 = (EditText) getActivity().findViewById(R.id.trending_textView); 

    new Title().execute(); 


} 

private class Title extends AsyncTask<Void, Void, Void> { 
    String title; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 

     mProgressDialog = new ProgressDialog(getActivity()); 
     mProgressDialog.setTitle("Fetching the latest trends"); 
     mProgressDialog.setMessage("#Trends"); 
     mProgressDialog.setIndeterminate(false); 
     mProgressDialog.show(); 
    } 

    @Override 
    public Void doInBackground(Void... params) { 
     try { 

      doc = Jsoup.connect(url).get(); 

      Elements links = doc.getElementsByTag("a"); 

      for (Element link : links) { 
       //String linkHref = link.attr("href"); 
       linkText = link.text(); 

       //System.out.println("#"+linkText); 
      } 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    public void onPostExecute(Void result) { 

     tv1.setText(linkText.toString()); 
     mProgressDialog.dismiss(); 

    } 
} 

ご協力いただければ幸いです。

+0

は 'mProgressDialog.dismiss()'の仕事をしていますか? – Zakir

+0

'doInBackground'で' linkText'とは何を印刷しますか? – Zakir

+0

ループを削除した後に問題が解決しました – CodePlorer

答えて

0

doInbackground()メソッド で結果を返すことでタスク結果をUIスレッドに投稿する必要があります.Uは結果としてonPostExecute()を引数として受け取り、onPostExecute()は詳細はUIスレッド : -

https://developer.android.com/reference/android/os/AsyncTask.html

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    tv1 = (EditText) getActivity().findViewById(R.id.trending_textView); 

    new Title().execute(); 


} 

private class Title extends AsyncTask<Void, Void, Elements> { 
    String title; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 

     mProgressDialog = new ProgressDialog(getActivity()); 
     mProgressDialog.setTitle("Fetching the latest trends"); 
     mProgressDialog.setMessage("#Trends"); 
     mProgressDialog.setIndeterminate(false); 
     mProgressDialog.show(); 
    } 

    @Override 
    public Elements doInBackground(Void... params) { 
     Elements links ; 
     try { 

      doc = Jsoup.connect(url).get(); 

      links = doc.getElementsByTag("a"); 

      } catch (Exeption e) { 

       return null ; 
     } 


     return links; 
    } 

    @Override 
    public void onPostExecute(Elements ...links) { 

      if(links.get(0) == null) return ; 
      for (Element link : links.get(0)) { 
      //String linkHref = link.attr("href"); 
      linkText = link.text(); 
      // u might add scrolling behavior 
      tv.append(linktext + "\n"); 
      //System.out.println("#"+linkText); 
     } 


    } 
} 
関連する問題