2017-09-23 19 views
0
public class home extends Fragment{ 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     //returning our layout file 
     //change R.layout.yourlayoutfilename for each of your fragments 

     postlist = (ListView)getView().findViewById(R.id.postList); 
     progressDialog = new ProgressDialog(getActivity()); 
     progressDialog.setMessage("Loading..."); 
     progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
     progressDialog.show(); 

     StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String s) { 
       gson = new Gson(); 
       list = (List) gson.fromJson(s, List.class); 
       postTitle = new String[list.size()]; 

       for (int i = 0; i < list.size(); ++i) { 
        mapPost = (Map<String, Object>) list.get(i); 
        mapTitle = (Map<String, Object>) mapPost.get("title"); 
        postTitle[i] = (String) mapTitle.get("rendered"); 
       } 
       **postlist.setAdapter(new ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1, postTitle));//R is not Resolved** 
       progressDialog.dismiss(); 

      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError volleyerror) { 
       Toast.makeText(getActivity(),"Some error occurred", Toast.LENGTH_LONG).show(); 

      } 
     }); 

     return inflater.inflate(R.layout.home, container, false); 
    } 


    @Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     //you can set the title for your toolbar here for different fragments different titles 
     getActivity().setTitle("Home"); 
    } 
} 

エラーが発生しました:シンボル変数Rを見つけることができません。 同じコードがアクティビティで正常に動作していますが、アクティビティで使用しているときにエラーが発生しています。フラグメント内のシンボル変数Rを見つけることができません

+0

'onCreateView()'ビュー内で 'getView()'を呼び出すと、明らかな理由でNPEが発生します –

答えて

0

フラグメント

@Nullable 
@Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.home, container, false); 

postlist = (ListView)rootView.findViewById(R.id.postList); 

    // your allll code 
    return rootView; 
} 
+0

問題点:postlist.setAdapter(新しいArrayAdapter(getActivity()、android.R.layout.simple_list_item_1、postTitle)) ; Rが解決されない –

0

であなたのコントロールをバインドするためにこれをしようと

View rootView 
@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    if (rootView != null) { 
     ViewGroup parent = (ViewGroup) rootView.getParent(); 
     if (parent != null) 
      parent.removeView(rootView); 
    } 
    try { 
     rootView = inflater.inflate(R.layout.home, container, false); 
    } catch (InflateException e) { 

    } 



return rootView; 
} 
+0

問題は配列アダプタの行です:postlist.setAdapter(new ArrayAdapter(getActivity()、android.R.layout.simple_list_item_1、postTitle));エラー:フラグメント内のR変数を見つけることができません。 –

+0

プロジェクトを一度クリーニングしたり、プロジェクトを再構築したりします –

+0

何度もクリーニングして再構築しようとしましたが、エラーは残ります。 –

1

はちょうど私に同じことが起こったこのコードを試してみてください。
私は提案したようにrootViewを参照しようとしましたが、エラーは残ります。
Build-> clean & rebuildを試みましたが、エラーが残ります。私は最終的に私のフラグメントとレイアウトが対応を削除を終了し、その後、

は、Android Studioのインターフェイス(新=>フラグメント=>フラグメント(空白))を介して新しいフラグメントを再作成し、まったく同じコードを実装しましたそれ以前よりもうまく動作していました。

私が知っているのは、あなたが探しているかもしれない解決策ではありませんが、私がオンラインで見つけたすべての提案を試し過ぎて過ごした後、それが私のために働く唯一の方法です。

関連する問題