2017-07-27 6 views
0

JSONを使用してリストビューにデータを挿入しようとしています。私は1つのエラーがあり、私はどこに単一のエラーを置くべきかわからない。AndroidのフラグメントにJSONのリストビューを挿入する

エラーは、getJSON()を指しています。ただ、無効なメソッドの宣言に言ってリターンrootviewの下

は、ここでそれがフラグメントを拡張し、内部のすべてのヘルプは非常に高く評価されるだろう

public class News extends Fragment { 
    private ListView lv; 
    private String JSON_STRING; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View rootView = inflater.inflate(news, container, false); 
     lv = (ListView) rootView.findViewById(R.id.listView3); 
     return rootView; 
    } 

    getJSON(); 


    private void showResult(){ 
     JSONObject jsonObject = null; 
     ArrayList<HashMap<String,String>> list = new ArrayList<>(); 
     try { 
      jsonObject = new JSONObject(JSON_STRING); 
      JSONArray result = jsonObject.getJSONArray(Config.TAG_JSON_ARRAY1); 

      for(int i = 0; i<result.length(); i++){ 
       JSONObject jo = result.getJSONObject(i); 
       String NID = jo.getString(Config.TAG_NID); 
       String title = jo.getString(Config.TAG_title); 
       String content = jo.getString(Config.TAG_content); 
       String n_date = jo.getString(Config.TAG_n_date); 
       HashMap<String,String> match = new HashMap<>(); 
       match.put(Config.TAG_NID, NID); 
       match.put(Config.TAG_title,title); 
       match.put(Config.TAG_content,content); 
       match.put(Config.TAG_n_date,n_date); 
       list.add(match); 
      } 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     ListAdapter adapter = new SimpleAdapter(
       getActivity(), list, R.layout.newsadapterlayout, 
       new String[]{Config.TAG_title,Config.TAG_content, Config.TAG_n_date, Config.TAG_NID}, 
       new int[]{ R.id.title, R.id.content, R.id.n_date}); 
     lv.setAdapter(adapter); 
    } 

    private void getJSON(){ 
     class GetJSON extends AsyncTask<Void,Void,String> { 


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

      } 

      @Override 
      protected void onPostExecute(String s) { 
       super.onPostExecute(s); 
       JSON_STRING = s; 
       showResult(); 
      } 

      @Override 
      protected String doInBackground(Void... params) { 
       RequestHandler rh = new RequestHandler(); 
       String s = rh.sendGetRequest(Config.URL_NEWS); 
       return s; 
      } 
     } 
     GetJSON gj = new GetJSON(); 
     gj.execute(); 
    } 

リストビューで私のコードです。ありがとうございます

+0

httpコールのために改造を使用してください。後でありがとうございます:) – Nenco

答えて

0

メソッドの内部でクラスを宣言することはできません。

クラスGetJSONからprivate void getJSON()を分離するには、単にコードをメソッドの外に移動します。 GetJSON gj = new GetJSON();

+0

クラスまたはインターフェイスが期待されています。そして、getJSON sirを解決することはできません – kurokocrunch

関連する問題