bundles
  آیا می دانید دوره های آموزشی سون لرن از جامع ترین و کاربردی ترین آموزش های موجود در سطح وب فارسی است!

دوره مجازی اندروید (جلسه 16): گرفتن آخرین اخبار از سرور php

80 4596 ۳۰ مرداد ۹۵
به نام خدا، سلام، در جلسه قبلی یک api service با php ایجاد کردیم که می توانستیم از طریق آن پست های حدید داخل پایگاه داده ذخیره کنیم و با فرمت json به کاربر برگردانیم. در این جلسه قصد داریم پست های ایجاد شده در سرور را داخل اپ نمایش دهیم. مطالب مطرح شده در این جلسه عبارتند از :  
  • اضافه کردن فایل جدید برای برگرداندن پست های سرور به اپ
  • دریافت اطلاعات از سرور با volley
  • نمایش اطاعات داخل صفحه آخرین اخبار
این مطلب یک جلسه از دوره آموزش پروژه محور برنامه نویسی اندروید - پایه تا پیشرفته است و برای دیدن آن باید در این دوره ثبت نام کنید .
توضیحات : سیستم عامل اندروید، با بیش از یک میلیارد کاربر در دنیا بالغ بر 70 درصد سهم سیستم عامل های تلفن های همراه را به خود اختصاص داده است. همین موضوع باعث شده تا بازار کاری با پتانسیل بالا برای برنامه نویسی اندروید ایجاد گردد. با توجه به استقبال کاربران و درخواست های مکرر شما دوستان عزیز سعی کردیم دوره ای جامع و کامل را در زمینه برنامه نویسی اندروید برگزار نماییم. در این دوره تمامی مفاهیم مقدماتی تا پیشرفته اندروید را به صورت کاملا پروژه محور آموزش خواهیم داد. پس از گذراندن این دوره می توانید هر برنامه و اپ اندرویدی که می خواهید، با بهترین کیفیت و آخرین تکنولوژی های روز تولید کنید. این دوره طوری طراحی شده که تمام نیازهای بازار کار را پاسخگو می باشد. زبان برنامه نویسی استفاده شده در این دوره جاواست که بهینه ترین، پر سرعت ترین و با کیفیت ترین اپ های اندروید را با آن می توان تولید کرد و گوگل این روش را با آخرین به روزرسانی ها به بهترین شکل پشتیبانی می کند. برای گذراندن این دوره، نیاز به تجربه برنامه نویسی پیشرفته ندارید، ما سعی کردیم اکثر مفاهیم مورد نیاز شما را در جلسات ابتدایی آموزش دهیم. این دوره نیز بر اساس اصل قیمت گذاری منصفانه در سون لرن با هزینه ای بسیار کمتر از آنچه در دوره های حضوری می پردازید در دسترس شما خواهد بود.
:: مطالب جدید سون لرن را از طریق ایمیل دریافت کنید :

دیدگاه ها 80 دیدگاه برای این مطلب ارسال شده است.

  • ‏‏
    iranianseda(۵ آذر ۱۳۹۵)

    من دقیقا ماننده آموزش شما جلو رفتم ولی چیزی نشون نمی ده وقتی پروژه رو ران می کنم.
    حتی از فایل های پروژه شما هم استفاده کردم نشد.
    فقط در لاگ کت متن زیر رو می زنه:
    ClothsAdapter clothsAdapter = new ClothsAdapter(getContext(), DataFakeGenerator.getClothes(getContext()));
    11-25 09:44:58.497 20837-20837/iran.maleki.test E/RecyclerView: No adapter attached; skipping layout
    11-25 09:44:58.507 20837-20837/iran.maleki.test E/RecyclerView: No adapter attached; skipping layout
    11-25 09:44:58.517 20837-20837/iran.maleki.test I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@35d4902 time:230505634
    بی زحمت ایمیلتون رو هم بگید استاد.
    ممنون بابت آموزش های خوبتون

    • ‏‏
      سعید شاهینی(۵ آذر ۱۳۹۵)

      سلام، این اروری که می ده می گه Adapter رو ست نکردید!
      باید بنویسید:
      recyclerView.setAdapter(clothsAdapter);

      • ‏‏
        iranianseda(۵ آذر ۱۳۹۵)

        همه چیز رو درست زدم. از کد خود شما استفاده کردم ولی باز هم خطای میده
        11-25 09:44:58.507 20837-20837/iran.maleki.test E/RecyclerView: No adapter attached; skipping layout

        • ‏‏
          سعید شاهینی(۸ آذر ۱۳۹۵)

          سلام پاسخ رو براتون ایمیل کردم

  • ‏‏

    استاد برا منم دقیقا همین ارور رو میده
    No adapter attached; skipping layout
    onErrorResponse: com.android.volley.TimeoutError

    • ‏‏
      سعید شاهینی(۱۴ آذر ۱۳۹۵)

      سلام، timeout error یعنی نتونسته به سرورتون متصل بشه.

  • ‏‏
    امیررضا رحیمی(۱۹ آذر ۱۳۹۵)

    سلام استاد
    اپ ارور فورس کلوز میده
    همچنین
    این ارور ها رو میده
    12-09 15:55:41.342 20688-20688/? E/RecyclerView: No adapter attached; skipping layout
    12-09 15:55:41.362 20688-20688/? E/AndroidRuntime: FATAL EXCEPTION: main

    • ‏‏
      سعید شاهینی(۲۶ آذر ۱۳۹۵)

      سلام، اسکرین شات کاملی از اررور ثبت بکنید که بشه متوجه شد مشکل چیه

  • ‏‏

    من نمیتونم ip اپ تاپمو پیدا کنم.فکر کنم شما در آموزشتون توی مرورگر گوگل کروم ادرس ip رو بدست اوردین. امکانش هست روش پیدا کردنش رو بهم بگید؟

  • ‏‏

    سلام استاد.
    من تمامی قسمت ها رو همراه شما جلو رفتم. اما در اندروید مانیتور این ارور رو میده:
    Unexpected response code 403 for http://192.168.1.56/7learn/getposts.php
    مشکل از کجاست؟ اینترنتم وصل هست تما به دیتابیس متصل نمیشه

    • ‏‏
      سعید شاهینی(۲۶ آذر ۱۳۹۵)

      سلام این مشکل یعنی شما به دلیل نامعلومی امکان دسترسی به محتویات سایتتون ندارید

  • ‏‏
    elham rezaiy(۲۵ بهمن ۱۳۹۵)

    سلام استاد شاهینی.اسکرین شات از خطا را براتون ایمیل کردم.ممنون میشم جواب بدین

  • ‏‏
    Hamid Reza Khavarie(۳ اسفند ۱۳۹۵)

    سلام استاد
    چیزی که من متوجه شدم از مشاهده جلسه 14 و 16 ما دو حالت JsonRequest داریم ، در جلسه 14 شما حالت JsonObjectRequest را توضیح دادید و در جلسه 16 JsonArrayRequest و اینکه در جلسه 16 شما پست ها را از سمت سرور که دریافت می کنید به RecyclerView ارسال می کنید.
    سوال اول : آیا استفاده از JsonArrayRequest با JsonObjectRequest فرقی دارد یا حتما باید وقتی [ ] شروع شد باید از JsonArray استفاده کرد و زمانی که {} شروع شد باید از حالت دوم استفاده کرد؟
    لینک
    http://www.payamrasa.com/json.php?n=10
    لینک بالا باید از JsonObject استفاده کرد ؟
    سوال 2 : من برای دریافت لینک بالا به اینصورت عمل کردم

    ولی یک مشکل کلاس LastNewsActivity در بخش

    در بخشی که post را پاس می دهیم ارور میدهد و نیاز به یک ArrayList از نوع post نیاز دارد .
    می خواستم بدانم چگونه می توان یک ArrayList در متد parseResponseToPost ایجاد کرد.

    • ‏‏
      سعید شاهینی(۴ اسفند ۱۳۹۵)

      سلام٬
      پاسخ سوال اول: بله زمانی که Response شما دارای والد یا Parent از نوع آرایه [] باشد باید از JsonArrayRequest استفاده کنید و اگر {} باشد از JsonObjectRequest.
      پاسخ سوال دوم با مثال:

      public void getPosts(final OnPostsReceived onPostsReceived){
      JsonArrayRequest request=new JsonArrayRequest(Request.Method.GET, "http://192.168.1.104/7learn/getposts.php", null, new Response.Listener() {
      @Override
      public void onResponse(JSONArray response) {
      List posts=new ArrayList<>();
      for (int i = 0; i < response.length(); i++) { Post post=new Post(); try { JSONObject jsonObject=response.getJSONObject(i); post.setTitle(jsonObject.getString("title")); post.setId(jsonObject.getInt("id")); post.setContent(jsonObject.getString("content")); post.setPostImageUrl(jsonObject.getString("image_url")); post.setDate(jsonObject.getString("date")); posts.add(post); } catch (JSONException e) { e.printStackTrace(); } } onPostsReceived.onReceived(posts); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e(TAG, "onErrorResponse: "+error ); } }); request.setRetryPolicy(new DefaultRetryPolicy(18000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); Volley.newRequestQueue(context).add(request); }


      public interface OnPostsReceived{
      void onReceived(List posts);
      }

  • ‏‏

    سلام من دقیقا کارایی که شما گفتین کردم ولی وقتی ران میکنم هیچی نمیاره و صفحه خالی نشونم میده. این ارور هم میده. چکار کنم؟

    03-18 14:44:19.221 24056-24056/com.example.thispc.sinare E/RecyclerView: No adapter attached; skipping layout

    • ‏‏
      سعید شاهینی(۱ فروردین ۱۳۹۶)

      سلام٬ این ارور می گه هنوز آداپتری روی RecyclerView ست نشده.

      • ‏‏

        دقیقا همونایی که نوشتید هم کپی میکنم بازم نمیشه

        • ‏‏
          سعید شاهینی(۴ فروردین ۱۳۹۶)

          کلاسی که RecyclerView رو داخلش قراردادید و آداپتر رو روش ست کردید برام ایمیل کنید.

  • ‏‏
    مختار اسمعیلی(۲۹ اسفند ۱۳۹۵)

    من مشکلم حل شد ولی واقعا ممنون از پشتیبانی. متاسفم

  • نکته : برای پاسخگویی سریعتر و بهتر، بخش نظرات این مطلب مختص پرسش و پاسخ های کاربران ثبت نامی در دوره ی دوره آموزش پروژه محور برنامه نویسی اندروید - پایه تا پیشرفته است .
    اگر قبلا در این دوره ثبت نام کرده اید پس از ورود به سایت می توانید تمامی پرسش و پاسخ ها و نظرات مطرح شده ی این مطلب را مشاهده و اگر سوالی دارید در همینجا مطرح کنید.

    ورود/عضویت سریع با اکانت فیسبوک/جیمیل شما

    :: شما می توانید با استفاده از اکانت یاهو یا جیمیل خود به صورت کاملا امن، سریع و بدون نیاز به ورود اطلاعات عضو و وارد سایت شوید. در این صورت هیچ نیازی به ورود نام کاربری و رمز عبور خود نخواهید داشت و هویت شما از طریق ایمیلتان مورد تائید قرار می گیرد .
    برای استفاده از این روش باید در اکانت گوگل(جیمیل) و یا یاهوی خود لاگین باشید .
    عضویت/ ورود سریع با :
    در حال اتصال ...

    ورود به سایت

    ورود سریع با :
    در حال اتصال ...

    جستجو در سون لرن

    عبارت :
    7LearnTelegram