رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

اشکال در نمایش جیسون آبجکت ها در ریسایکلرویو


پست های پیشنهاد شده

با سلام

من در یک کلاس (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 ست میکنید دارای اطلاعات میباشد؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...