رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل

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

سلام 

من یک برنامه برای فراخوانی json از ووکامرس نوشتم که از کتابخانه volly  و  RecyclerView استفاده کردم و باتوابع json arrey و jsonobject اونها رو فراخوانی کردم اما بعد از اجذای برنامه فقط صفحه لودینگ میاد و بقیه اطلاعات رو لود نمیکنه نمیدونم مشکل از کجاست 

کد کامل اکتیویتی:

 

package com.example.fresh.freshlandshop;

import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
    //Creating a List of superheroes
    private List<SuperHeroes> listSuperHeroes;
    //Creating Views
    private RecyclerView recyclerView;
    private RecyclerView.LayoutManager layoutManager;
    private RecyclerView.Adapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Initializing Views
        recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
        //Initializing our superheroes list
        listSuperHeroes = new ArrayList<>();
        //Calling method to get data
        getData();
    }
    //This method will get data from the web api
    private void getData(){
        //Showing a progress dialog
        final ProgressDialog loading = ProgressDialog.show(this,"در حال دریافت اطلاعات" ,"لطفا صبر کنید...",false,false);

        //Creating a json array request
        JsonObjectRequest jsonArrayRequest = new JsonObjectRequest(config.DATA_URL,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        //Dismissing progress dialog
                        loading.dismiss();
                        try {
                            JSONArray obj_products =
                                    response.getJSONArray("products");
                            parseData(response.getJSONArray("products"));
                        }
                        catch(Exception e)
                        {
                        }
                        //calling method to parse json array
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                    }
                });
        //Creating request queue
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        //Adding request to the queue
        requestQueue.add(jsonArrayRequest);
    }
    //This method will parse json data
    private void parseData(JSONArray array){
        for(int i =0; i<array.length(); i++) {
            SuperHeroes superHero = new SuperHeroes();
            JSONObject json = null;
            try {
                json = array.getJSONObject(i);
                superHero.setName(json.getString(config.TAG_NAME));
                superHero.setRank(json.getString(config.TAG_RANK));

                superHero.setRealName(json.getString(config.TAG_REAL_NAME).toString() .replace("</p>","") .replace("</p>",""));
                        JSONArray products = json.getJSONArray(config.TAG_IMAGE);
                String image_url="";
                for(int k=0;k<products.length();k++) {
                    JSONObject new_json = products.getJSONObject(k);
                    image_url = new_json.getString(config.TAG_IMAGE_URL);
                }
                superHero.setImageUrl(image_url);
                ArrayList<String> addList = new ArrayList<String>();
                JSONArray addArray = json.getJSONArray(config.TAG_IMAGE);
                int size = addArray.length();
            } catch (JSONException e) {
                e.printStackTrace();
            }
            listSuperHeroes.add(superHero);
        }
        //Finally initializing our adapter
        adapter = new cardadapter(listSuperHeroes, this);
        recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
        recyclerView.setHasFixedSize(true);
        //Adding adapter to recyclerview
        recyclerView.setAdapter(adapter);
    }
}
 
ویرایش شده توسط 0212121
لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

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

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

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

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

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

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

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

  • مطالب مشابه

    • توسط VahidNZ
      با سلام خدمت همه دوستان و اساتید

      من یه برنامه دارم که با استفاده از کتابخانه Volley یکسری textview و imageview و به نمایش در میارم 
      الان نیاز دارم یک ستون به دیتابیس اضافه کنم ولینک ویدئو قرار بدم و با استفاده از Videoview نمایش بدم 

      ولی متاسفانه هرچی آموزش میبینم مخصوص استفاده کردن به صورت مشخص از یک URL و یا استفاده داخلی خود گوشی هست 

      اگر ممکن هست راهنمایی بفرمایید که مقادیر JSON که میگیرم و برای ویدئو به چه صورتی باید پیاده سازی کنم 

      با تشکر
    • توسط qasem2018
      سلام
      من یه خبر خوان اندرویدی دارم که اخبار سایتو نشون میده
      من id آخرین خبر رو که کاربر دیده سیو میکنم همیشه . یه آدرس هم دارم (مثلا http://test.ir/lastid) که id آخرین خبر رو میده
      حالا میخوام مثلاً هر 6 ساعت یک بار اپلیکیشن بیاد چک کنه ببینه آیدی خبری که ذخیره شده با آخرین خبر فرق داره یا نه . اگه فرق داشت بیاد یه نوتیفیکیشن بده که "خبر جدید منتشر شده ؛ اپ رو باز کن"
      کلاً میخوام اپ (وقتی که اجرا نیست) بره چک کنه خبر جدید منتشر شده یا نه . اگه اره یه نوتیفیکیشن به کاربر نشون بده
      مرسی
    • توسط Javad Mahmoodi
      سلام
      من چجوری میتونم اطلاعاتی که داخل sqlite دارم را به سمت سرورم با json ارسال کنم؟
      ممنون میشم اگه راهنمایی بفرمایید(ترجیحا با کد)
    • توسط MaHdI-09
      سلام من یک خروجی جیسون  با  volley گرفتم که به این شکله(متن اصلی فارسی هستش)
      \u0633\u062a\u062e\u062f\u0627

      چجوری برش گردونم به حالت اصلیش(فارسی) تو اندریود؟
      ممنون.
    • توسط soroush_habibi
      سلام.برای قرار دادن اطلاعات جیسون در سرور باید همینطوری اطلاعات رو داخل یک فایل بزارم و آپلود کنم تو سرور یا روش خاصی داره؟من هر کاری می کنم تو برنامه اندروید جواب نمیده و نمی تونم اطلاعات رو دریافت کنم ولی وقتی تو سایت mocky.io اطلاعات رو قرار میدم تو برنامه اطلاعات رو دریافت می کنه.آیا مشکل از هاست رایگانیه که دارم استفاده می کنم؟
      یه سوال دیگه.فایلی که اطلاعات رو توش قرار میدم و تو سرور آپلود می کنم باید چه پسوندی داشته باشه؟
  • فایل

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