mohammad_pyn 1 ارسال شده در 2 بهمن، ۱۳۹۴ اشتراک گذاری ارسال شده در 2 بهمن، ۱۳۹۴ دوستان آیا کسی آموزش گرفتن اطلاعات json به روش volley در یک recyclerview در اندروید استدیو سراغ داره بهم بده ؟؟؟ اگه امکانش هست دوستان مدیر یه آموزش تصویری در این مورد بذارن ممنون میشم چون واقعا آموزش کاملی در این مورد وجود نداره ممنون لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 4 بهمن، ۱۳۹۴ اشتراک گذاری ارسال شده در 4 بهمن، ۱۳۹۴ سلام اگه به این شکل فرض کنیم : [ { "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 ارسال شده در 5 بهمن، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 5 بهمن، ۱۳۹۴ توی تعریف این کلاس مشکل دارم میگه باید توی یک فایل همنام خودش باشه 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 ارسال شده در 22 بهمن، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 22 بهمن، ۱۳۹۴ دوستان هنوز مشکل پابرجاست کسی کمک میکنه ؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 5 بهمن، ۱۳۹۴ اشتراک گذاری ارسال شده در 5 بهمن، ۱۳۹۴ سلام شما از برنامه ران بگیر و متن ارور انگلیسی رو از پنجرهAndroid Monitor واسه منبذار اگر متوجه نشدین سورس مینویسم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohammad_pyn 1 ارسال شده در 7 بهمن، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 7 بهمن، ۱۳۹۴ من این مشکل رو حل کردم البته با یه سری کد دیگه. وحالا اطلاعات رو از اینترنت میگیرم و تو ریسایکل ویو نشونش میدم اما یه مشکل کوچک دارم.اونم اینه که وقتی رو دکمه کلیک میکنم تا وارد اکتیویتی بشم و اطلاعات رو از اینترنت بخونم و نشون بدم برای بار اول اکتیویتی خالی نشونم میده و باید برگردم و دوباره روی اون دگمه کلیک کنم و بعد که برای بار دوم وارد شدم اطلاعات رو نشونم میده. بنظرتون راه حل این مشکل چیه؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امین شاهدی 5,773 ارسال شده در 7 بهمن، ۱۳۹۴ اشتراک گذاری ارسال شده در 7 بهمن، ۱۳۹۴ من این مشکل رو حل کردم البته با یه سری کد دیگه. وحالا اطلاعات رو از اینترنت میگیرم و تو ریسایکل ویو نشونش میدم اما یه مشکل کوچک دارم.اونم اینه که وقتی رو دکمه کلیک میکنم تا وارد اکتیویتی بشم و اطلاعات رو از اینترنت بخونم و نشون بدم برای بار اول اکتیویتی خالی نشونم میده و باید برگردم و دوباره روی اون دگمه کلیک کنم و بعد که برای بار دوم وارد شدم اطلاعات رو نشونم میده. بنظرتون راه حل این مشکل چیه؟ از چه طریقی اطلاعات رو به اکتیویتی بعد میفرستین ؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohammad_pyn 1 ارسال شده در 7 بهمن، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 7 بهمن، ۱۳۹۴ اطلاعاتی ارسال نمیشه به اکتیویتی بعد اون دکمه فقط یه کار لینک مانند داره به اکتیویتی مورد نظر و در اون اکتیویتی از طریق کتابخونه volley به صورت جیسون اطلاعات رو میگیرم و از طریق ریسایکل به صورت لیست نشونش می دم. ریسایکل رو که بصورت دستی مقدار دهی میکنم همون بار اول نشون میده ولی وقتی از اینترنت میخونم و مقدار دهی میکنم باید دوبار واردش بشم تا جواب بده. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امین شاهدی 5,773 ارسال شده در 7 بهمن، ۱۳۹۴ اشتراک گذاری ارسال شده در 7 بهمن، ۱۳۹۴ حواستون باشه بعد از اینکه اطلاعات رو گرفتین و تکمیل شد متد setAdapter رو اجرا کنید ، اگه نشد بعد این که اطلاعات رو گرفتین و کامل شد ادپتر رو notfy کنید ببینید مشکل حل میشه یا نه ، اگه باز هم نشد کد های اکتیویتی دومتون رو بدین لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohammad_pyn 1 ارسال شده در 7 بهمن، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 7 بهمن، ۱۳۹۴ این کد اکتیویته . . . 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 ارسال شده در 22 اسفند، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 22 اسفند، ۱۳۹۴ مشکل حل شد از این آموزش استفاده کردم دریافت اطلاعات از سرور لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
mohammad_pyn 1
دوستان آیا کسی آموزش گرفتن اطلاعات json به روش volley در یک recyclerview در اندروید استدیو سراغ داره بهم بده ؟؟؟
اگه امکانش هست دوستان مدیر یه آموزش تصویری در این مورد بذارن ممنون میشم چون واقعا آموزش کاملی در این مورد وجود نداره
ممنون
لینک ارسال
به اشتراک گذاری در سایت های دیگر
10 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.