بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
به هم ریختگی ایتم ها در اسکرول سریع ریسایکرویو
سلام
من یه سری ایتم ها رو که شامل عکس و متن هست از سرور به صورت جیسون می گیرم و در ریسایکرویو نمایش می دم مشکل اینجاس که سریع اسکرول میشه ایتم ها به هم میرزه.
مشکل از کجاس
کد بخشی که اسکرول میشه
public class home_agahi3_server extends AsyncTask<String,Void,String> {
private Context c;
private Activity ac;
private String state_id;
private String lim;
private RecyclerView rec;
AgahiRecyclerAdapter adp;
public home_agahi3_server(Context c,Activity ac,String lim,AgahiRecyclerAdapter adp
){
this.c=c;
this.ac=ac;
this.lim=lim;
this.adp=adp;
}
long startTime;
@Override
protected void onPreExecute() {
super.onPreExecute();
//swipeContainer.setRefreshing(false);
// agahi_recycler.setVisibility(View.INVISIBLE);
// rotat2.start();
// agahi_recycler.setOnScrollListener(null);
}
@Override
protected String doInBackground(String... strings) {
try {
String data = URLEncoder.encode("get_post", "UTF-8") + "=" + URLEncoder.encode("true", "UTF-8");
// data+="&"+ URLEncoder.encode("state_id", "UTF-8")+"="+URLEncoder.encode(state_id,"UTF-8");
data += "&" + URLEncoder.encode("lim", "UTF-8") + "=" + URLEncoder.encode(lim, "UTF-8");
//Thread.sleep(10);
// SystemClock.sleep(1000);
//
URL url = new URL(MainActivity.url + "post.php");
URLConnection connect = url.openConnection();
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
errorMessage = urlc.getResponseCode() == 200 ? "Successful Connection" : "Internet Error";
if (urlc.getResponseCode() == 200) {
connect.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(connect.getOutputStream());
wr.write(data);
wr.flush();
wr.close();
//
InputStreamReader in = new InputStreamReader(connect.getInputStream());
BufferedReader reader = new BufferedReader(in);
String line = "";
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null) {
sb.append(line);
}
return sb.toString();
}
} catch (SocketTimeoutException e) {
errorMessage = "Connection Error1";
return "err1";
} catch (MalformedURLException e) {
errorMessage = "Connection Error2";
return "err1";
} catch (IOException e) {
Log.e("dddgg2", "dddgg2");
errorMessage = "Connection Error3";
return "err1";
}
return "";
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
lay2.setVisibility(View.GONE);
lay2.setBackgroundResource(R.drawable.bg_cadr_around);
if(s.equals("err1")){
Toast.makeText(c,"err",Toast.LENGTH_SHORT).show();
lay2.setVisibility(View.GONE);
lay2.setBackgroundResource(R.drawable.bg_cadr_around);
net=0;
scroll=0;
}else {
// rotat2.stop();
lay2.setVisibility(View.GONE);
lay2.setBackgroundResource(R.drawable.bg_cadr_around);
// nDialog.dismiss();
nDialog = null;
// agahi_recycler.setVisibility(View.VISIBLE);
JSONArray arr = null;
JSONObject ob = null;
//Toast.makeText(c,scroll+"",Toast.LENGTH_SHORT).show();
scroll = 0;
try {
arr = new JSONArray(s);
for (int i = 0; i < arr.length(); i++) {
ob = arr.getJSONObject(i);
_name.add(ob.getString("title"));
_img.add(ob.getString("img"));
_price.add(ob.getString("price"));
_menu_order.add(ob.getString("order"));
_id.add(ob.getString("id"));
// _body.add(ob.getString("content"));
_time.add(ob.getString("time"));
/*_imgs.add(ob.getString("imgs"));
_color.add(ob.getString("color"));
_size.add(ob.getString("size"));
_shenas.add(ob.getString("shenas"));
_expire.add(ob.getString("expire"));
_visit_today.add(ob.getString("todayvisit"));
_visit_total.add(ob.getString("totalvisit"));
_mobile.add(ob.getString("mobile"));
_cat.add(ob.getString("cat"));
_user_id.add(ob.getString("user"));
_link.add(ob.getString("link"));*/
}
adapter.notifyItemRangeInserted(limit,_time.size());
net = 0;
} catch (Exception e) {
//Toast.makeText(c,"errors in json",Toast.LENGTH_SHORT).show();
}
}
}
}
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .