scientific 5 ارسال شده در ۱۷ خرداد ۱۳۹۶ گزارش اشتراک گذاری ارسال شده در ۱۷ خرداد ۱۳۹۶ با سلام من در یک کلاس (api_request ) ریکوئستم رو می سازم و رسپونس رو دریافت می کنم بعد جیسون آبجکت ها رو پارز می کنم در کلاس دیتامدلم و بعد دیتامدل رو به یک لیست اد میکنم بعد یک کلاس هم نوشتم (List_jsonobject) که list رو بر می گرداند حالا می خوام مقادیر رو داخل آیتم های ریسایکلرویو نشون بدم اما اکتیویتی خالی رو نشون میده با این که تمام مراحل ساخت ریسایکلرویو،کلاسviewHolder, آداپتر و غیره رو کامل انجام دادم... من کلاس های مرتبط رو میزارم ممنون میشم راهنمایی کنید public class Api_Requests { Context context; public Api_Requests(Context context) { this.context=context; } public void get_NextFivedaysForcast(final OnRecivedWeatherListener onRecivedweatherListener, String City_Name) { JsonObjectRequest joRequest=new JsonObjectRequest(Request.Method.GET, "http://api.openweathermap.org/data/2.5/forecast?q=London,us&apikey=6204cbd647f0a0c263315edfe5b88a1a", null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { List<Weather_datamodel> list=new ArrayList<>(); ParseAndSet_Response(response); onRecivedweatherListener.OnRecivedweather(list); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("ApiService","onErrorResponse"+error.toString()); } }); joRequest.setRetryPolicy(new DefaultRetryPolicy(8000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); RequestQueue requestQueue=Volley.newRequestQueue(context); requestQueue.add(joRequest); } public void get_CurrentweatherForcast(OnRecivedWeatherListener onRecivedweatherListener,String City_Name) { JsonObjectRequest joRequest2=new JsonObjectRequest(Request.Method.GET, "http://api.openweathermap.org/data/2.5/weather?q=London&apikey=6204cbd647f0a0c263315edfe5b88a1a" , null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }); joRequest2.setRetryPolicy(new DefaultRetryPolicy(8000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); RequestQueue requestQueue=Volley.newRequestQueue(context); requestQueue.add(joRequest2); } ////------------------ Parse jsonObject to Datamodel -------------------//// public List_jsonobject ParseAndSet_Response(JSONObject response) { Weather_datamodel weather_datamodel=new Weather_datamodel(); List<Weather_datamodel> list=new ArrayList<>(); List_jsonobject listclass=new List_jsonobject(); try { JSONArray list_jsonarray = response.getJSONArray("list"); //create object from "List" JSONObject list_jasonobject=list_jsonarray.getJSONObject(0); JSONArray weather_jsonarray=list_jasonobject.getJSONArray("weather"); JSONObject weather_jsonobject=weather_jsonarray.getJSONObject(0); weather_datamodel.setWeather_name(weather_jsonobject.getString("main")); weather_datamodel.setWeather_description(weather_jsonobject.getString("description")); weather_datamodel.setWeather_icon(weather_jsonobject.getString("icon")); JSONObject wind_jsonobject=list_jasonobject.getJSONObject("wind"); weather_datamodel.setWind_speed((float) wind_jsonobject.getDouble("speed")); weather_datamodel.setWind_degree((float) wind_jsonobject.getDouble("degree")); JSONObject main_jsonobject=list_jasonobject.getJSONObject("mian"); weather_datamodel.setTempreture((float) main_jsonobject.getDouble("temp")); weather_datamodel.setTempreture_min((float) main_jsonobject.getDouble("temp_min")); weather_datamodel.setTempreture_max((float) main_jsonobject.getDouble("temp_max")); weather_datamodel.setPressure((float) main_jsonobject.getDouble("pressure")); weather_datamodel.setHumidity((int) main_jsonobject.getDouble("humidity")); // set datamodel to List list.add(weather_datamodel); Log.i("TAG","_____size of List:____"+list.size()); return listclass; } catch (JSONException e) { e.printStackTrace(); return null; } } public interface OnRecivedWeatherListener { void OnRecivedweather(List<Weather_datamodel> list); } } public class List_jsonobject { public List<Weather_datamodel> getData() { Weather_datamodel weather_datamodel = new Weather_datamodel(); List<Weather_datamodel> list =new ArrayList<>(); list.add(weather_datamodel); return list; } } public class Adapter_RecyclerView extends RecyclerView.Adapter<Items_Fivedaysforecast> { List<Weather_datamodel> list = new ArrayList<>(); Context context; public Adapter_RecyclerView(Context context,List<Weather_datamodel> list) { this.context=context; this.list=list; } @Override public Items_Fivedaysforecast onCreateViewHolder(ViewGroup parent, int viewType) { View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.items_fivedaysforecast,parent,false); Items_Fivedaysforecast items_fdf=new Items_Fivedaysforecast(view); return items_fdf; } @Override public void onBindViewHolder(Items_Fivedaysforecast holder, int position) { holder.txt_days.setText(list.get(position).getWeather_name()); } @Override public int getItemCount() { return list.size(); } } public class MainActivity extends AppCompatActivity implements Api_Requests.OnRecivedWeatherListener { Context context; List<Weather_datamodel> list=new ArrayList<>(); Adapter_RecyclerView adapter=new Adapter_RecyclerView(context,list); JSONObject jsonObject; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Api_Requests api_requests=new Api_Requests(MainActivity.this); api_requests.get_NextFivedaysForcast(MainActivity.this,"Mashhad"); //api_requests.ParseAndSet_Response(jsonObject,list); } @Override public void OnRecivedweather(List<Weather_datamodel> list) { Adapter_RecyclerView adapter=new Adapter_RecyclerView(MainActivity.this,list); RecyclerView recyclerView= (RecyclerView) findViewById(R.id.recyclerview_fiveday); //adapter=new Adapter_RecyclerView(api_requests.list); recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this)); recyclerView.setAdapter(adapter); } } آیا ارایه ای که به RecyclerView ست میکنید دارای اطلاعات میباشد؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
scientific 5 ارسال شده در ۲۲ خرداد ۱۳۹۶ مالک گزارش اشتراک گذاری ارسال شده در ۲۲ خرداد ۱۳۹۶ لیست رو بعد از پارز کردن جیسون آبجکت ها در دیتامدل پر می کنم: نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .