بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
دریافت اطلاعات از سرور با جیسون ( مشکل رفرش)
با سلام دوستان
من با این کد ها و استفاده از کتابخانه volley از یک فایل رابط php اطلاعات رو تحت جیسون میگیرم و در یک لیست ویو نشون میدم اما مشکلی که هست اینکه : دفعه اول که اطلاعات رو میگیرم و در لیست نشون داده میده اما وقتی یه اطلاعات جدید تو دیتابیس سرور وارد میکنم و برنامه رو اجرا میکنم دیگه اون اطلاعات نشون داده نمیشه یعنی وقتی اسکرول میکنم به پایین تنها همون اطلاعاتی که قبلا و دفعه اول گرفته بودم نشون داده میشه ، لطفا راهنمایی فرمایید با تشکر از شما
درواقع من میخوام وقتی سری اول داده رو گرفت ( مثلا دفعه اول 10 تا داده) بعد که دوباره اسکرول رو به پایین کشیدم دوباره 10 تا داده دیگه بگیره تا آخر اما نتونستم کدی براش پیدا کنم.
publicclassnewst_frag extendsFragment{
privatestaticfinalStringTAG =MainActivity.class.getSimpleName();
privateListViewlistView;
privateFeedListAdapterlistAdapter;
privateList<FeedItem>feedItems;
privateStringURL_FEED ="http://www.mysite.com/test/get_data.php";
publicnewst_frag(){}
@Override
publicvoidonCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
clear_cache();
}
@Override
publicView onCreateView(LayoutInflater inflater,ViewGroup container,
Bundle savedInstanceState){
// Inflate the layout for this fragment
returninflater.inflate(R.layout.newst_frag, container,false);
}
@Override
publicvoidonActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
clear_cache();
listView =(ListView)getView().findViewById(R.id.list);
feedItems =newArrayList<FeedItem>();
listAdapter =newFeedListAdapter(getActivity(),feedItems);
listView.setAdapter(listAdapter);
// We first check for cached request
Cache cache =AppController.getInstance().getRequestQueue().getCache();
Cache.Entry entry = cache.get(URL_FEED);
if(entry !=null){
// fetch the data from cache
try{
String data =newString(entry.data,"UTF-8");
try{
parseJsonFeed(newJSONObject(data));
}catch(JSONException e){
e.printStackTrace();
}
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}
}else{
// making fresh volley request and getting json
JsonObjectRequest jsonReq =newJsonObjectRequest(Request.Method.GET,
URL_FEED,null,newResponse.Listener<JSONObject>(){
@Override
publicvoidonResponse(JSONObject response){
VolleyLog.d(TAG,"Response: "+ response.toString());
if(response !=null){
parseJsonFeed(response);
}
}
},newResponse.ErrorListener(){
@Override
publicvoidonErrorResponse(VolleyError error){
VolleyLog.d(TAG,"Error: "+ error.getMessage());
}
});
// Adding request to volley request queue
AppController.getInstance().addToRequestQueue(jsonReq);
}
listView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?> parent,View view,intposition,longid){
String str =feedItems.get(position).getSeller();
Toast.makeText(getActivity(),str,Toast.LENGTH_LONG).show();
}
});
}
privatevoidparseJsonFeed(JSONObject response){
try{
JSONArray feedArray = response.getJSONArray("ads");
for(inti =0; i < feedArray.length(); i++){
JSONObject feedObj =(JSONObject) feedArray.get(i);
FeedItem item =newFeedItem();
item.setId(feedObj.getInt("id"));
item.setTitle(feedObj.getString("title"));
// Image might be null sometimes
item.setImage(feedObj.getString("image"));
item.setIntro(feedObj.getString("intro"));
item.setEmail(feedObj.getString("email"));
item.setSeller(feedObj.getString("seller"));
item.setDate(feedObj.getString("date"));
feedItems.add(item);
}
// notify data changes to list adapater
listAdapter.notifyDataSetChanged();
}catch(JSONException e){
e.printStackTrace();
}
}
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .