2020年12月31日星期四

Why my RecyclerView doesnt show anything?

I have a big issue. My RecyclerView doesnt work and I don´t know how to solve my problem. In my Logcat it seems that the Fragment doesn't call onResponse and only call the ErrorResponse.
I tried everything but nothing helped at all.
Don't know which part is wrong and why it doesnt work.

My Home Fragment:

public class Home_Fragment extends Fragment {  private String URL= "http://localhost/pages/index.php";  private RecyclerAdapter recyclerAdapter;  private RecyclerView recyclerView;  private ArrayList<Data> listdata;  private static final String TAG = "Home_Fragment";      private GridLayoutManager gridLayoutManager;    // TODO: Rename parameter arguments, choose names that match  // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER  public Home_Fragment() {      // Required empty public constructor  }  private void AmbilData() {      JsonArrayRequest aarRequest = new JsonArrayRequest(URL,              new Response.Listener<JSONArray>() {          @Override          public void onResponse(JSONArray response) {              if (response.length()>0){                  for (int i =0 ; i<response.length();i++){                      try {                          JSONObject data = response.getJSONObject(i);                          Data item = new Data();                          item.setEventname(data.getString("Eventname"));                          item.setEventhost(data.getString("Eventclub"));                          item.setEventclub(data.getString("Eventhost"));                          item.setGenre(data.getString("Genre"));                          item.setDate(data.getString("Date"));                          item.setAdress(data.getString("Adress"));                          item.setTime(data.getString("Time"));                          item.setPrice(data.getString("Price"));                          } catch (JSONException e) {                      }                  }                  recyclerAdapter.addData(listdata);              }          }          },              new Response.ErrorListener() {          @Override          public void onErrorResponse(VolleyError error) {                                  }                              }){                        };                      Volley.newRequestQueue(getActivity()).add(aarRequest);                  }    @Override  public View onCreateView(LayoutInflater inflater, ViewGroup container,                           Bundle savedInstanceState) {      Log.d(TAG, "onCreateView: createview");        // Inflate the layout for this fragment      View view = inflater.inflate(R.layout.fragment_home_, container, false);        AmbilData();      recyclerView = view.findViewById(R.id.recyclerview);      recyclerView.setHasFixedSize(true);      gridLayoutManager = new GridLayoutManager(getActivity(), 2);      gridLayoutManager.setOrientation(GridLayoutManager.VERTICAL);      recyclerView.setLayoutManager(gridLayoutManager);      listdata = new ArrayList<Data>();      recyclerAdapter = new RecyclerAdapter(getActivity(),listdata);      recyclerView.setAdapter(recyclerAdapter);      recyclerAdapter.notifyDataSetChanged();      Log.d(TAG, "onCreateView: viewreturned");        return view;  }  }  

My RecyclerAdapter

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {      private ArrayList<Data> listdata;      private Activity activity;      private Context context;      private static final String TAG = "Recycler";    public RecyclerAdapter(Activity activity, ArrayList<Data> listdata) {      this.listdata = listdata;      this.activity = activity;  }    @Override  public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {      Log.d(TAG, "onCreateViewHolder: create Holder");      View v = LayoutInflater.from(parent.getContext())              .inflate(R.layout.event_cardview, parent, false);      ViewHolder vh = new ViewHolder(v);      return vh;  }    @Override  public void onBindViewHolder(ViewHolder holder, int position) {      Log.d(TAG, "onBindViewHolder: Create holder Items");      //holder.mImage.setImageResource(listdata.get(position).getThubnail());      holder.eventname.setText(listdata.get(position).getEventname());      holder.eventclub.setText(listdata.get(position).getEventclub());      holder.eventhost.setText(listdata.get(position).getEventhost());      holder.genre.setText(listdata.get(position).getGenre());      holder.date.setText(listdata.get(position).getDate());      holder.adress.setText(listdata.get(position).getAdress());      holder.time.setText(listdata.get(position).getTime());      holder.price.setText(listdata.get(position).getPrice());      }  public void addData(List<Data> data) {      listdata.addAll(data);      notifyDataSetChanged();  }  @Override  public int getItemCount() {      Log.d(TAG, "getItemCount: return size");      return listdata.size();  }    public static class ViewHolder extends RecyclerView.ViewHolder {      private CardView cv;      private TextView eventname,eventclub,eventhost,genre,date,adress,time,price;      private static final String TAG = "Class";          public ViewHolder(View v) {          super(v);          Log.d(TAG, "ViewHolder: created");          cv=(CardView)v.findViewById(R.id.eventcardview);          eventname=(TextView)v.findViewById(R.id.EventName);          eventclub=(TextView)v.findViewById(R.id.EventClub);          eventhost=(TextView)v.findViewById(R.id.EventHost);          genre=(TextView)v.findViewById(R.id.Genre);          date=(TextView)v.findViewById(R.id.dark);          adress=(TextView)v.findViewById(R.id.location_adress);          time=(TextView)v.findViewById(R.id.Time);          price=(TextView)v.findViewById(R.id.Price);        }  }    }  

My Data

public class Data {      private String eventname;      private String eventclub;      private String eventhost;      private String genre;      private String date;      private String adress;      private String time;      private String price;    public String getEventname() {      return eventname;  }  public void setEventname(String eventname) {      this.eventname = eventname;  }    public String getEventclub() {      return eventclub;  }  public void setEventclub(String eventlcub) {      this.eventclub = eventclub;  }    public String getEventhost() {      return eventhost;  }  public void setEventhost(String eventhost) {      this.eventhost = eventhost;  }    public String getGenre() {      return genre;  }  public void setGenre(String genre) {      this.genre = genre;  }    public String getDate() {      return date;  }  public void setDate(String date) {      this.date = date;  }    public String getAdress() {      return adress;  }    public void setAdress(String adress) {      this.adress = adress;  }    public String getTime() {      return time;  }  public void setTime(String time) {      this.time = time;  }    public String getPrice() {      return price;  }  public void setPrice(String price) {      this.price = price;  }    }  

When I open localhost/pages/index.php on my Computer it shows this:

 {"ID":1,"Eventname":"Imagine-Event","Eventclub":"Imagine-Club","Eventhost":"Imagine-Host","Genre":"Techno","Date":"2020-12-31","Time":"22:00-06:00","Adress":"Frankfurt Gutleutstra\u00dfe 126a","Price":15}  {"ID":2,"Eventname":"Hello-Event","Eventclub":"Hello-Club","Eventhost":"Hello-Host","Genre":"Hello","Date":"2021-01-01","Time":"21:00-6:00","Adress":"Frankfurt am Main Sachsenhausengasse 128a","Price":5}  {"ID":3,"Eventname":"Fantasy-Event","Eventclub":"Fantasy-Club","Eventhost":"Fantasy-Host","Genre":"Mainstream","Date":"2021-02-19","Time":"00:00-12:00","Adress":"Langen (Hessen) Sehretstra\u00dfe 33a","Price":5}  {"ID":4,"Eventname":"This Event","Eventclub":"This-Club","Eventhost":"This Host","Genre":"Hip-Hop","Date":"2021-03-03","Time":"20:00-2:00","Adress":"Frankfurt am Main Goethestra\u00dfe","Price":15}  

When I start it dont show the Recyclerview what is the problem tried to solve it for 10 hours now.

https://stackoverflow.com/questions/65526932/why-my-recyclerview-doesnt-show-anything January 01, 2021 at 10:30AM

没有评论:

发表评论