mohammad_pyn 1 ارسال شده در 22 فروردین، 2016 اشتراک گذاری ارسال شده در 22 فروردین، 2016 دوستان آیا کسی آموزش گرفتن اطلاعات json به روش volley در یک recyclerview در اندروید استدیو سراغ داره بهم بده ؟؟؟ اگه امکانش هست دوستان مدیر یه آموزش تصویری در این مورد بذارن ممنون میشم چون واقعا آموزش کاملی در این مورد وجود نداره ممنون لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 24 فروردین، 2016 اشتراک گذاری ارسال شده در 24 فروردین، 2016 سلام اگه به این شکل فرض کنیم : [ { "name": "Person 1", "age": 30 }, { "name": "Person 2", "age": 20 }, { "name": "Person 3", "age": 40 } ] در کلس اداپتر و View Holder : public class Person { String name; Integer age; Person() { } } public class RVAdapter extends RecyclerView.Adapter<RVAdapter.PersonViewHolder> { List<Person> persons; RVAdapter(List<Person> persons) { this.persons = persons; } @Override public PersonViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview, parent, false); PersonViewHolder pvh = new PersonViewHolder(v); return pvh; } @Override public void onBindViewHolder(PersonViewHolder holder, int position) { holder.personName.setText(persons.get(position).name); holder.personAge.setText(String.valueOf(persons.get(position).age)); } @Override public int getItemCount() { if (persons != null) { return persons.size(); } return 0; } @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); } public static class PersonViewHolder extends RecyclerView.ViewHolder { CardView cv; TextView personName; TextView personAge; PersonViewHolder(View itemView) { super(itemView); cv = (CardView) itemView.findViewById(R.id.cv); personName = (TextView) itemView.findViewById(R.id.person_name); personAge = (TextView) itemView.findViewById(R.id.person_age); } } } و داخل اکتیویتی اصلی : ... RecyclerView rv = (RecyclerView)findViewById(R.id.rv); rv.setHasFixedSize(true); LinearLayoutManager llm = new LinearLayoutManager(mContext); rv.setLayoutManager(llm); final RVAdapter rvAdapter = new RVAdapter(personList); rv.setAdapter(rvAdapter); RequestQueue requestQueue = Volley.newRequestQueue(mContext); String url = "http://192.16.1.100/api/persons"; JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(url, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { try { if (response.length() > 0) { personList.clear(); for (int i = 0; i < response.length(); i++) { JSONObject jsonObject = response.getJSONObject(i); Person person = new Person(); if (!jsonObject.isNull("name")) { person.name = jsonObject.getString("name"); } if (!jsonObject.isNull("age")) { person.age = jsonObject.getInt("age"); } personList.add(i, person); } rvAdapter.notifyDataSetChanged(); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // do something } }); requestQueue.add(jsonArrayRequest); ... نتیجش میشه این : لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohammad_pyn 1 ارسال شده در 24 فروردین، 2016 سازنده اشتراک گذاری ارسال شده در 24 فروردین، 2016 توی تعریف این کلاس مشکل دارم میگه باید توی یک فایل همنام خودش باشه public class Person {String name;Integer age;Person() {} } و واسه این کلاس هم همینو میگه public class RVAdapter extends RecyclerView.Adapter<RVAdapter.PersonViewHolder> { . . . حالا من چیکار کنم دوتاش رو که نمیشه هم نام گرفت؟؟؟ من واسه تست اولی رو هم نام فایل جاوا گرفتم ولی میگه باید دومی رو از حالت پابلیک در بیارم میشه راهنمایی کنید؟ یعنی کدم به این شکل شده public class JsonRecyclerAdapter { Integer id; String name; String fname; Integer num; JsonRecyclerAdapter() { } } //این خط ارور داره میگه نباید پابلیک باشه public class RVAdapter extends RecyclerView.Adapter<RVAdapter.MyViewHolder>{ List<JsonRecyclerAdapter> mylist; RVAdapter(List<JsonRecyclerAdapter> mylist) { this.mylist=mylist; } بعد تو اکتیویتی اصلی توی این قسمت از کد LinearLayoutManager llm = new LinearLayoutManager(mContext); rv.setLayoutManager(llm); final RVAdapter rvAdapter = new RVAdapter(personList); rv.setAdapter(rvAdapter); RequestQueue requestQueue = Volley.newRequestQueue(mContext); String url = "[url="http://192.16.1.100/api/persons";"]http://192.16.1.100/api/persons";[/url] mContext , personList رو چجوری تعریف کنم؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohammad_pyn 1 ارسال شده در 11 اردیبهشت، 2016 سازنده اشتراک گذاری ارسال شده در 11 اردیبهشت، 2016 دوستان هنوز مشکل پابرجاست کسی کمک میکنه ؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 25 فروردین، 2016 اشتراک گذاری ارسال شده در 25 فروردین، 2016 سلام شما از برنامه ران بگیر و متن ارور انگلیسی رو از پنجرهAndroid Monitor واسه منبذار اگر متوجه نشدین سورس مینویسم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohammad_pyn 1 ارسال شده در 27 فروردین، 2016 سازنده اشتراک گذاری ارسال شده در 27 فروردین، 2016 من این مشکل رو حل کردم البته با یه سری کد دیگه. وحالا اطلاعات رو از اینترنت میگیرم و تو ریسایکل ویو نشونش میدم اما یه مشکل کوچک دارم.اونم اینه که وقتی رو دکمه کلیک میکنم تا وارد اکتیویتی بشم و اطلاعات رو از اینترنت بخونم و نشون بدم برای بار اول اکتیویتی خالی نشونم میده و باید برگردم و دوباره روی اون دگمه کلیک کنم و بعد که برای بار دوم وارد شدم اطلاعات رو نشونم میده. بنظرتون راه حل این مشکل چیه؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امین شاهدی 5,777 ارسال شده در 27 فروردین، 2016 اشتراک گذاری ارسال شده در 27 فروردین، 2016 من این مشکل رو حل کردم البته با یه سری کد دیگه. وحالا اطلاعات رو از اینترنت میگیرم و تو ریسایکل ویو نشونش میدم اما یه مشکل کوچک دارم.اونم اینه که وقتی رو دکمه کلیک میکنم تا وارد اکتیویتی بشم و اطلاعات رو از اینترنت بخونم و نشون بدم برای بار اول اکتیویتی خالی نشونم میده و باید برگردم و دوباره روی اون دگمه کلیک کنم و بعد که برای بار دوم وارد شدم اطلاعات رو نشونم میده. بنظرتون راه حل این مشکل چیه؟ از چه طریقی اطلاعات رو به اکتیویتی بعد میفرستین ؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohammad_pyn 1 ارسال شده در 27 فروردین، 2016 سازنده اشتراک گذاری ارسال شده در 27 فروردین، 2016 اطلاعاتی ارسال نمیشه به اکتیویتی بعد اون دکمه فقط یه کار لینک مانند داره به اکتیویتی مورد نظر و در اون اکتیویتی از طریق کتابخونه volley به صورت جیسون اطلاعات رو میگیرم و از طریق ریسایکل به صورت لیست نشونش می دم. ریسایکل رو که بصورت دستی مقدار دهی میکنم همون بار اول نشون میده ولی وقتی از اینترنت میخونم و مقدار دهی میکنم باید دوبار واردش بشم تا جواب بده. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امین شاهدی 5,777 ارسال شده در 27 فروردین، 2016 اشتراک گذاری ارسال شده در 27 فروردین، 2016 حواستون باشه بعد از اینکه اطلاعات رو گرفتین و تکمیل شد متد setAdapter رو اجرا کنید ، اگه نشد بعد این که اطلاعات رو گرفتین و کامل شد ادپتر رو notfy کنید ببینید مشکل حل میشه یا نه ، اگه باز هم نشد کد های اکتیویتی دومتون رو بدین لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohammad_pyn 1 ارسال شده در 27 فروردین، 2016 سازنده اشتراک گذاری ارسال شده در 27 فروردین، 2016 این کد اکتیویته . . . public class ListActivity extends AppCompatActivity { private TextView txtResponse; private String jsonResponseName; private String jsonResponseAddress; private String jsonResponsPic; private String urlJsonArray; private static String TAG = ListActivity.class.getSimpleName(); static List<String> nameItems = new ArrayList<String>(); static List<String> addressItems = new ArrayList<String>(); static List<String> picItems = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); // txtResponse = (TextView) findViewById(R.id.textView10); //daryaft json makeJsonArrayRequest(); //tarif recycler RecyclerView recyclerViewlist=(RecyclerView) findViewById(R.id.list); //tarif class adapter recyclview recyclerViewlist.setAdapter(new RecyclerAdapter(this,nameItems,addressItems,picItems)); //tarif layout maneger baraye tarif noe nemayesh recyclerViewlist.setLayoutManager(new LinearLayoutManager(this)); } private void makeJsonArrayRequest() { //daryaftjsonUrl Bundle extras = getIntent().getExtras(); urlJsonArray=extras.getString("jsonUrl"); JsonArrayRequest req = new JsonArrayRequest(urlJsonArray, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { Log.d(TAG, response.toString()); try { // Parsing json array response // loop through each json object nameItems.clear(); addressItems.clear(); picItems.clear(); for (int i = 0; i < response.length(); i++) { jsonResponseName = ""; jsonResponseAddress=""; jsonResponsPic=""; JSONObject person = (JSONObject) response.get(i); String id = person.getString("id"); String name = person.getString("name"); String address = person.getString("address"); String tag = person.getString("tag"); String des = person.getString("des"); String pic = person.getString("pic"); // JSONObject phone = person.getJSONObject("phone"); // String home = phone.getString("home"); // String mobile = phone.getString("mobile"); jsonResponseName += name; jsonResponseAddress += address; jsonResponsPic += pic; nameItems.add(jsonResponseName); addressItems.add(jsonResponseAddress); picItems.add(jsonResponsPic); } //txtResponse.setText(jsonResponse); //for (int i=0;i<100;i++){ // items.add("item #"+i); // } } catch (JSONException e) { e.printStackTrace(); Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { VolleyLog.d(TAG, "Error: " + error.getMessage()); Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show(); } }); // Adding request to request queue AppController.getInstance().addToRequestQueue(req); } } لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohammad_pyn 1 ارسال شده در 12 خرداد، 2016 سازنده اشتراک گذاری ارسال شده در 12 خرداد، 2016 مشکل حل شد از این آموزش استفاده کردم دریافت اطلاعات از سرور لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
mohammad_pyn 1
دوستان آیا کسی آموزش گرفتن اطلاعات json به روش volley در یک recyclerview در اندروید استدیو سراغ داره بهم بده ؟؟؟
اگه امکانش هست دوستان مدیر یه آموزش تصویری در این مورد بذارن ممنون میشم چون واقعا آموزش کاملی در این مورد وجود نداره
ممنون
لینک ارسال
به اشتراک گذاری در سایت های دیگر
10 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.