E / RecyclerView:没有连接适配器; 跳过布局不显示recyclerview中的数据

任何人都可以在这里帮助解决方案我得到的错误

E / RecyclerView:没有连接适配器; 跳过布局

这是我的文件。

OneFragment.java

public class OneFragment extends Fragment implements SearchView.OnQueryTextListener { private static final String TAG = "RecyclerViewExample"; private List feedsList; private RecyclerView mRecyclerView; private MyRecyclerViewAdapter adapter; private ProgressBar progressBar; private SearchView mSearchView; public OneFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View drawer = inflater.inflate(R.layout.fragment_one, container, false); mRecyclerView = (RecyclerView) drawer.findViewById(R.id.recycler_view); mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); progressBar = (ProgressBar) drawer.findViewById(R.id.progress_bar); String url = "http://krishscs.esy.es/RecycleViewExample/RecycleViewExample.php"; mSearchView = (SearchView) drawer.findViewById(R.id.search_view); setupSearchView(); new DownloadTask().execute(url); adapter = new MyRecyclerViewAdapter(getActivity(),feedsList); Toast.makeText(getActivity(), "HELLO", Toast.LENGTH_SHORT).show(); mRecyclerView.setAdapter(adapter); // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_one, container, false); } public class DownloadTask extends AsyncTask { @Override protected void onPreExecute() { progressBar.setVisibility(View.VISIBLE); } @Override protected Integer doInBackground(String... params) { Integer result = 0; HttpURLConnection urlConnection; try { URL url = new URL(params[0]); urlConnection = (HttpURLConnection) url.openConnection(); int statusCode = urlConnection.getResponseCode(); // 200 represents HTTP OK if (statusCode == 200) { BufferedReader r = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); StringBuilder response = new StringBuilder(); String line; while ((line = r.readLine()) != null) { response.append(line); } parseResult(response.toString()); result = 1; // Successful } else { result = 0; //"Failed to fetch data!"; } } catch (Exception e) { Log.d(TAG, e.getLocalizedMessage()); } return result; //"Failed to fetch data!"; } @Override protected void onPostExecute(Integer result) { progressBar.setVisibility(View.GONE); if (result == 1) { adapter = new MyRecyclerViewAdapter(getActivity(),feedsList); Toast.makeText(getActivity(), "HELLO", Toast.LENGTH_SHORT).show(); mRecyclerView.setAdapter(adapter); } else { Toast.makeText(getActivity(), "Failed to fetch data!", Toast.LENGTH_SHORT).show(); } } } private void parseResult(String result) { try { feedsList = new ArrayList(); JSONObject response = new JSONObject(result); JSONArray posts = response.optJSONArray("result"); for (int i = 0; i < posts.length(); i++) { JSONObject post = posts.optJSONObject(i); FeedItem item = new FeedItem(); item.setTitle(post.optString("name")); item.setThumbnail(post.optString("image")); feedsList.add(item); } Log.d("POSTDATA",feedsList.toString() ); } catch (JSONException e) { e.printStackTrace(); } } private void setupSearchView() { // mSearchView.setIconifiedByDefault(false); mSearchView.setOnQueryTextListener(this); // adapter.setFilter(feedsList); // mSearchView.setSubmitButtonEnabled(true); mSearchView.setQueryHint("Search here...."); } @SuppressLint("ResourceType") @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { MenuInflater Menuinflater = getActivity().getMenuInflater(); Menuinflater.inflate(R.layout.searchview_in_offers, menu); super.onCreateOptionsMenu(menu,inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { // Take appropriate action for each action item click int id = item.getItemId(); if (id == R.id.search) { // Handle the camera action final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item); searchView.setOnQueryTextListener(this); } return true; } @Override public boolean onQueryTextChange(String newText) { final List filteredModelList = filter(feedsList, newText); adapter.setFilter(filteredModelList); return true; } @Override public boolean onQueryTextSubmit(String query) { return false; } private List filter(List models, String query) { query = query.toLowerCase();final List filteredModelList = new ArrayList(); for (FeedItem model : models) { final String name = model.getTitle().toLowerCase(); if (name.contains(query)) { filteredModelList.add(model); } } return filteredModelList; } } 

MyRecyclerViewAdapter.java

 public class MyRecyclerViewAdapter extends RecyclerView.Adapter { private List feedItemList; private Context mContext; //private OnItemClickListener onItemClickListener; View view; public MyRecyclerViewAdapter(Context context, List feedItemList) { this.feedItemList = feedItemList; this.mContext = context; //this.feedItemList = new ArrayList(); // we copy the original list to the filter list and use it for setting row values //this.feedItemList.addAll(this.feedItemList); } @Override public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_row, null); CustomViewHolder viewHolder = new CustomViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(CustomViewHolder customViewHolder, int i) { final FeedItem feedItem = feedItemList.get(i); //Download image using picasso library if (!TextUtils.isEmpty(feedItem.getThumbnail())) { Glide.with(mContext).load(feedItem.getThumbnail()).diskCacheStrategy(DiskCacheStrategy.ALL) .into(customViewHolder.imageView); } //Setting text view title customViewHolder.textView.setText(Html.fromHtml(feedItem.getTitle())); customViewHolder.textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(view.getContext(), feedItem.getTitle(), Toast.LENGTH_SHORT).show(); } }); /* final View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { //onItemClickListener.onItemClick(feedItem); Toast.makeText(view.getContext(),feedItem.getTitle(), Toast.LENGTH_SHORT).show(); } };*/ /*customViewHolder.imageView.setOnClickListener(listener); customViewHolder.textView.setOnClickListener(listener);*/ } class CustomViewHolder extends RecyclerView.ViewHolder { protected ImageView imageView; protected TextView textView; public CustomViewHolder(View view) { super(view); this.imageView = (ImageView) view.findViewById(R.id.thumbnail); this.textView = (TextView) view.findViewById(R.id.title); } } @Override public int getItemCount() { return feedItemList.size(); } public void setFilter(List countryModels) { feedItemList = new ArrayList(); feedItemList.addAll(countryModels); notifyDataSetChanged(); } } 

FeedItem.java

 public class FeedItem { private String title; private String thumbnail; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getThumbnail() { return thumbnail; } public void setThumbnail(String thumbnail) { this.thumbnail = thumbnail; } } 

下面是我的xml文件。

list_row.xml

       

fragment_one.java

       

如果您需要任何文件,请告诉我

提前致谢。

请充分满足需求。

你需要return drawer; 而不是inflater.inflate(R.layout.fragment_one, container, false);onCreateView()里面

编辑

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View drawer = inflater.inflate(R.layout.fragment_one, container, false); feedsList = new ArrayList(); mRecyclerView = (RecyclerView) drawer.findViewById(R.id.recycler_view); mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); progressBar = (ProgressBar) drawer.findViewById(R.id.progress_bar); String url = "http://krishscs.esy.es/RecycleViewExample/RecycleViewExample.php"; mSearchView = (SearchView) drawer.findViewById(R.id.search_view); setupSearchView(); new DownloadTask().execute(url); adapter = new MyRecyclerViewAdapter(getActivity(),feedsList); Toast.makeText(getActivity(), "HELLO", Toast.LENGTH_SHORT).show(); mRecyclerView.setAdapter(adapter); // Inflate the layout for this fragment return drawer; } 

试试这个

 private void parseResult(String result) { try { feedsList = new ArrayList(); JSONObject response = new JSONObject(result); JSONArray posts = response.optJSONArray("result"); for (int i = 0; i < posts.length(); i++) { JSONObject post = posts.optJSONObject(i); FeedItem item = new FeedItem(); item.setTitle(post.optString("name")); item.setThumbnail(post.optString("image")); feedsList.add(item); } adapter = new MyRecyclerViewAdapter(getActivity(),feedsList); mRecyclerView.setAdapter(adapter); Log.d("POSTDATA",feedsList.toString() ); } catch (JSONException e) { e.printStackTrace(); } }