آموزش ساخت کتاب اندرویدی با طراحی متریال و دیتابیس و تنظیمات (فایل دیتابیس اضافه شد)

مباحث آموزش:

  • ساخت یک کتاب اندرویدی کامل
  • امکان جستجو در محتویات
  • دسته بندی مطالب
  • استفاده از ویوهای جدید متریال
  • استفاده از فونت فارسی در برنامه
  • صفحه تنظیمات با امکان تغییر اندازه قلم
  • منوکشویی متریال با هدر
  • ویو پیجر و تب بندی برای موضوعات
  • لیست نشاندارها (علاقه مندی ها)
  • اسکرول پارالکس و دکمه شناور ، اسنک بار
  • کار با ریسایکلرویو و کاردویو
  • امکان اشتراک گذاری متن ها
  • کار با دیتابیس اسکولایت
  • جستجو در اسکولایتدوستانی که برای پرمیشن ها در اندروید ۶ مشکل دارند این آموزش رو ببینند:
  • آموزش استفاده از پرمیشن ها در اندروید ۶ به بالا(مربوط به این کتاب نیست)

اسکرول پارالکس و زیبا

استفاده از ViewPager و تب بندی صفحات

بخش ۲ – پیاده سازی Recycler View و CardView

مدت زمان زیادی از عمر list view گذشته است !‌ هنوز از list view برای لایه بندی اپلیکیشن خود استفاده میکنید ؟ هرچه سریع تر پیاده سازی card view و recycler view را یاد بگیرید و یک لیست با طراحی استاندارد متریال دیزاین بسازید.

دانلود بصورت رایگان

بخش ۱ – پیاده سازی View Pager

View Pager یکی از المنت های مهم در طراحی متریال دیزاین به شمار میرود و پیاده سازی درست و اصولی آن کار ساده ای نیست اما در این ویدیو به سادگی یاد میگیرید که چگونه یک view pager بسازید و با استفاده از fragment و adapter بین صفحات مختلف جابجا شوید.

معرفی پروژه:

قبل از یادگرفتن هر چیزی باید اطلاعات مناسبی در رابطه با آن به دست بیاورید. در این بخش یاد میگیرید که چگونه یک کتاب متریال بسازید و چگونه با استفاده از متریال دیزاین به اپلیکیشن های خود روح و طراوت و نشاط ببخشید.

دانلود بصورت رایگان

بخش ۵ – Navigation Drawer

در این بخش یاد میگیرید که چگونه یک منوی کشویی مطابق با استاندارد طراحی متریال دیزاین برای خود ایجاد کنید تا بخش های مهم اپلیکیشن خود را در آن قرار دهید.

بخش ۴ – Collapse Toolbar

پیاده سازی تولبار به تنهایی کافی نیست !‌ بلکه باید از Collapse Toolbar استفاده کرد تا اپلیکیشن ظاهر بسیار حرفه ای تری پیدا کند.

بخش ۳ – Toolbar

هر اپلیکیشن نیاز به یک Toolbar در بالای صفحه دارد تا معرف عنوان اپلیکیشن باشد و بعضی از دکمه های مهم در آن قسمت قرار بگیرد. در این ویدیو طریقه پیاده سازی Toolbar استاندارد متریال دیزاین را یاد میگیرید.

دانلود بصورت رایگان

بخش ۸ – Snackbar و Floating Action Bar

در این بخش کمی بیشتر در رابطه با متریال دیزاین و استانداردهای متریال دیزاین صحبت میکنیم و طریقه ی پیاده سازی دو المنت مهم و زیبا در دنیای اندروید را یاد میگریم.

بخش ۷ – Card view and Sqlite

مهم ترین استفاده از sqlite هنگامی مطرح میشود که بتوانید آن را با card view مخلوط کنید و در کارد های خود اطلاعات بیرون کشیده شده از sqlite را نمایش دهید. به همین دلیل این بخش دارای اهمیت بسیاری می باشد.

بخش ۶ – Sqlite

برای نمایش اطلاعات نیاز به پایگاه داده داریم و در این ویدیو طریقه استفاده اصولی و درست از sqlite را یاد میگیریم و طریقه بیرون کشیدن اطلاعات از دیتابیس sqlite را به خوبی می آموزیم.

دانلود دیتابیس(تصحیح شد)

بخش ۱۱ – اشتراک گزاری

در این بخش یاد میگیریم که متونی که میخواهیم را چگونه از طریق اس ام اس, ایمیل و شبکه های اجتماعی به اشتراک بگزاریم و همچنین چگونه متن هایی که میخواهیم را به کلیپ برد کاربر کپی کنیم.

دانلود بصورت رایگان

بخش ۱۰ – توسعه صفحه ی داخلی

در این بخش یاد میگیریم که اطلاعات صفحات داخلی چگونه و بر چه اساسی باید از دیتابیس انتخاب شود و در این صفحات نمایش دهد و طریقه ی استفاده از ساختار key-value را به خوبی یاد میگیریم.

بخش ۹ – طراحی متریال صفحه داخلی

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

بخش ۱۴ – طراحی نهایی

در این بخش زمان بیشتری را صرف طراحی متریال خواهیم کرد و با تگ ها و attribute های بیشتری آشنا خواهیم شد, به اپلیکیشن خود رنگ و لعابی زیبا خواهیم بخشید و همچنین طریقه ی گرد کردن تصاویر در اندروید رایاد خواهیم گرفت.

دانلود بصورت رایگان

بخش ۱۳ – تنظیمات

در این بخش یاد میگیریم که چگونه صفحه تنظیمات را برای اپلیکیشن بسازیم و چگونه کاربر بتواند با استفاده از تنظیم سایز فونت, این سایز را در تمام متون اپلیکیشن اعمال کند.

بخش ۱۲ – پیاده سازی جست و جو

در این بخش یاد میگیریم که چگونه یک search و جست و جو در اپلیکیشن خود بسازیم و چگونه به دیتابیس query بزنیم و اطلاعات صحیح و درست را از آن استخراج کنیم و در اپلیکیشن نمایش دهیم.

خرید سورس پروژه:

برو به صفحه سورس پروژه

خرید قسمت های پولی پروژه بصورت یکجا:

درباره محمد بابازاده

برنامه نویس اندروید, IOS, وب و پایتون, مولف کتاب "برنامه نویسی پایتون به همراه ۷۷ پروژه در شبکه و امنیت" از انتشارات ناقوس.

ما را دنبال کنید:


آموزش های پیشنهادی سایت (نمایش همه):


۳۶۰ نظر

  • صالح گفت:

    سلام
    وقتتون بخیر
    این آموزش
    ۱-با اندروید استادیو هست یا با ایکلیس؟
    ۲-حداقل API چند رو برای اجرا لازم داره؟
    ممنون از سایت بسیار خوبتون

  • رضا گفت:

    سلام
    تازه کارهستم
    معنای match parent به معنای ساده در اندروید چیست؟

  • mahyar گفت:

    سلام
    از کجا میتونم فایل md_book_.sqlite رو دانلود کنم؟

  • مهرشاد گفت:

    با سلام…..آیا مباحث مربوط به پایگاه داده به طورکامل توضیح داده میشود…?

  • محمد گفت:

    سلام من آموزش رو خردیم عالیه فقط ی مشکل دارم وقتی زبان گوشیم فارسی میکنم طراحی به هم میریزه چیکار کنم لطفا راهنمایی کنید

  • محمد گفت:

    سلام از وقتی اندروید گوشیم کردم ۶ ارور دیتا بیس میگیره میگه could not open database چیکار کنم لطفا کمک کنید

  • رضا گفت:

    با سلام ساخت کتاب در اندروید استدیو و بیسیک فور چه تفاوتی دارند؟ کدام اموزش بهتر و اسان تر است؟

    • abbasalim گفت:

      سلام.اندروید استودیو توسط گوگل توسعه داده میشه و بروزتره.منابع آموزشی و کتابخونه های زیادی داره اما دردسر مخصوصا واسه ما ایرانیا که تحریممون کردن زیاد داره
      بیسیک۴ اندروید توسط گروههای شخص ثالث توسعه داده میشه اما دردسرش کمتر و کدهاش آسونتره

  • aminda گفت:

    سلام جناب بابازاده عزیز
    آموزش جناب عالی رو تهیه کردم و تا اینجا کار واقعا ازش لذت بردم
    خیلی آموزش خوبی هست هم از لحاظ کیفیت ، هم فن بیان و هم تسلط شما واقعا خوبه
    از نظر من توی اموزش های اندروید سایت اسفندونه ، این آموزش واقعا یه چیز دیگست(از همه جوانب)
    جناب بابازاده برنامه ای واسه آموزش های پروژه محور دیگه ندارین؟ واقعا حیفه از داشن خودتون ما رو محروم کنید . آموزش برنامه هایی مثل فروشگاه آنلاین ،شبکه های اجتماعی (مبتنی بر Firebase ) ،ویرایش تصویر ، برنامه هایی مبتنی بر مکان کاربر و…
    دیگه به نظرم به اندازه کافی بر روی اپلیکیشن های محتوا محور کار شده . امیدوارم که به درخواست این حقیر پاسخ مثب بدین
    با تشکر فراوان

    • سلام و درود
      خیلی ممنونم دوست عزیز لطف دارید
      انشاالله در آینده نزدیک برنامه ها و ویدیوهای آموزشی بیشتری خواهیم داشت و در خدمتتون خواهیم بود.

      موفق باشید

      • aminda گفت:

        جناب بابازاده یه مشکلی برخوردم سرچم کردم ولی متاسفانه به جواب خاضی نرسیدم
        ویدئو هفتم هستم دقیقه ۲۵ تا ۳۰ حدودا ، همونجایی که شما ۳ تا آدپتر تعریف میکنید برای صفحات مختلف در ویپیجر
        نمیدونم باگه یا اینکه واقعا دارم دستورات رو اشتباه مینویسم
        قضیه از این قراره که شما یک دیتابیس داشیتن با یک جدول ولی من یک دیتابیس دارم با دوتا جدول
        و میخوام که ویوپیجرم برای هر صفحه بره و از جدولی که براش نوشتم اطلاعات رو بخونه
        دوتا جدول درست کردم ودر کلاس AcivityMain مثل جناب عالی متد هاش رو هم درست کردم و در هر متد طبق آموش شما دسوترات رو زدم ولی فقط اسم جدول ها رو مختلف دادم ولی متاسفانه هرکاری میکنم همش ارور FATAL EXCEPTION :MAIN رو میده و میگه که جدولی با نام مثلا tbl رو پیدا نمیکنه !
        اگر در هر دو متدی که نوشتم دقیقا نام یک جدول رو بدم هیچ مشکلی بوجود نمیاد
        ممنون میشم راهنمایی کنید

        • سلام و درود
          خیلی عجیب هست این مشکل، اگر اسم جدول هارو درست داده باشید و کاملا مطابق با روشی که من پروژه رو نوشتم نوشته باشید نباید مشکلی باشه.
          مطمین هستید که اسم جدول رو دارید به درستی میدید ؟ هر دو جدول درون یک دیتابیس هستند ؟ اطلاعات بیشتری در اختیارم قرار بدین تا بهتر بتونم کمک کنم.

  • salah گفت:

    سلام من تازه کارم این اموزشها کاملا دستوراتی رو که مینویسند توضیح داده اند؟

  • سینا گفت:

    سلام و خسته نباشید
    بنده تو قسمت اول ینی viewpager وقتی میخام فایل رو امتحان کنم این ارور رو میده
    Error:(22, 39) error: incompatible types: PageFragment cannot be converted to Fragment
    Error:Execution failed for task ‘:app:compileDebugJavaWithJavac’.
    > Compilation failed; see the compiler error output for details.

  • مجتبی عباسی گفت:

    سلام فیلم هارو خریدم اما واسه ساخت پروژه بخش gradleبه خاطر اینcomplie ‘com.android.support:design:23.2.0’ارور میده راهنمایی میخواستم. به خاطر نسخه android support repositoryهست؟

  • محمد میرزایی گفت:

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

  • نیلوفر گفت:

    سلام ،خسته نباشید میخاستم بدونم چه جوری فونت اون تب بندی های بالای صفحه رو باید عوض کنم؟با تشکر

  • آرش ایزدپناه گفت:

    سلام جناب بابازاده
    من عکس ها را در SQLITE با فرمت BLOB ذخیره کردم.شما در آموزش عکس را از پوشه drawable فراخوانی میکنید و نمایش میدهید.اگر بخواهیم از ستون با نام IMAGE از SQLITE فراخوانی کنیم بجای کد زیر چه کدی قرار دهیم؟
    String imgAddres = ActivityMain.flower.get(position).getImgAddress();
    int id = ActivityMain.contex.getResources().getIdentifier(imgAddres, “drawable”, ActivityMain.context.getPackageName());
    holder.avatar.setImageResource(id);

  • Mehdi گفت:

    سلام من توی قسمت ۶ .کپی کردن دیتا بیس توی SD card کاربر مشکل دارم

  • aminda گفت:

    با سلام
    چرا نظر قبلی من هنوز تایید نشده؟! خیلی وقته این نظر رو گذاشتم .
    اسفندونه خیلی بهتره که توی پشتیبانی هم قوی تر عمل کنه
    آموزش های خوب مطمئنا پشتیبانی خوب هم لازم دارن
    با تشکر

  • محمد گفت:

    سلام ببخشید من وقتی پروژه میسازم بالا نمیاد همش متن زیر ثابت نشون میده و درحال لود شدنه در واقع لود شدنش تموم نمیشه ک بیاد بالا باید چیکار کنم؟؟ممنون میشم کمکم کنین

    Gradle:Resolve dependencies ‘:app:_debugcompile’

  • Mehdi گفت:

    لطفا پاسخ بدید

  • شاهو احمدی گفت:

    سلام ،من دوره را خریدم اما هنگا کار کردن با آموزش جلسه اول با پیغام خطا در این بخش مواجه شدم
    import android.support.design.wedget.TabLayout;
    در واقع design این رو چطور به برنامه ایمپورت کنم

  • عرفان گفت:

    با سلام خدمت شما
    بنده تازه کار هستم و یه سوال داشتم اونم اینه که شما توی آموزش طرز درست کردن دیتابیس و توضیحات اینکه مثلا title چه نوعی هست و تصویر چه نوعی هست بقیه موارد رو نگفتید، الان من موندم وسط آموزش و کاری نمیتونم بکنم چون اون قسمت رو بلد نیستم، لا اقل اگه میشه همینجا بگید که به ترتیب از title تا id چه نوع متغیر هایی رو میخواد
    با تشکر

    • سلام و درود
      هنگام درست کردن ‌Domain Object تمامی این موارد را توضیح دادیم
      title و بقیه مثل description و … از جنس String
      id از جنس int
      موفق باشید

      • عرفان گفت:

        شرمنده فکر میکنم متوجه نشدید
        من با نرم افزار sqlite expert درست کردم دیتابیس رو
        اونجا نمیدونم جنس متغیر ها چیه
        همونطور که خودتون میدونید وقتی که جدول درست میکنیم ستون که اضافه میکنیم هر ستون یه اسم و یه type داره
        من نمیدونم برای هر کدوم از اون داده ها چه نوع type رو انتخاب کنم
        مشکلم اینجاست وگرنه داخل خود برنامه رو متوجه شدم
        چون وقتی که داخل برنامه دستابیس رو معرفی میکنم وقتی برنامه رو اجرا میکنم هیچی نشون نمیده
        با تشکر

        • سلام و درود
          بله این مباحث در ویدیو توضیح داده نشد است
          هنگام ساخت دیتابیس باید نوع ستون های آن را مشخص کنید
          به مثال زیر توجه کنید
          mydatabase.execSQL("CREATE TABLE IF NOT EXISTS TutorialsPoint(Username VARCHAR,Password VARCHAR);");

          برای مثال در این کد ستون Username از جنس کاراکتر و ستون پسورد از جنس کاراکتر می باشد
          برای مطالعه بیشتر لینک زیر رو بهتون پیشنهاد میکنم
          http://www.tutorialspoint.com/android/android_sqlite_database.htm

          • عرفان گفت:

            شرمنده یه ارور هم هست که موقع ران شدن برنامه میده
            وقتی که برنامه رو اجرا میکنه موقع اجرا استاپ ورکنیگ میده
            no such table: ebook (code 1): , while compiling: SELECT * FROM ebook WHERE subject = ‘category’
            این هم ارورش هست
            نمیدونم مشکلش چیه

  • mmm گفت:

    با عرض سلام خسته نباشید
    امکانش هست این مجموعه رو از طریق پست ارسال کنید؟

  • احسان گفت:

    سلام مرسی از آموزش کاربردی ک رو سایت قرار دادین.من آموزشو خریدم و تا ی جایی هم کار کردم مشکلی ک هست اینه ک وقتی نرم افزارو هرچند بار اجرا میکنم کارد ویو ها ک تایتل رو نمایش میده برام دوبرابر میشه ینی این ک هرچنتا عنوان تو دیتام دارم با هربار اجرا دوبرابر میشه.ممنون میشم اگه ی راهنمایی کنین.بازم دمتون گرم برا آموزش خوبتون

  • احسان گفت:

    و حتی وقتی گوشی رو افقی میکنمم باز تایتلا دوبرابر میشه

  • حسنا گفت:

    سلام خسته نباشید
    میشه ی لینک برام بدین sdkدان کنم
    از خودم کتابخونه هارو ساپرت نمیکنه ممنون میشم

  • Mehdi گفت:

    با سلام خدمت شما.
    من توی data base این مشکل دارم :
    http://uupload.ir/files/unk_screenshot_20160819005821.png

  • آرش ایزدپناه گفت:

    سلام
    در سوال قبلی پرسیده بودم چطور میشه عکس را از دیتابیس فراخوانی کرد و شما در جواب فرمودید نمیشه و باید از storage فراخوانی شوند.اپلیکیشنی که طراحی میکنم بدین گونه است که کاربر اگر عکسی برای خود ست کرد بقیه کاربران بتونن ببینن عکسشو.مثل ست کردن عکس آواتار در تلگرام.پس چطور این فرآیند رو باید انجام بدم؟اگر آموزشی در این باره دارید لینکشو بفرستید.
    با تشکر

    • سلام و درود
      خب مشکلی نیست، اگر اپلیکیشنتون سرور داره لینک url عکس هارو توی دیتابیس سرور ذخیره میکنین، هنگامی که هر کاربر عادی request فرستاد به سمت سرور json ای که در response قرار داره لینک url رو میفرسته برای اپلیکیشن اندروید و شما توی اپلیکیشن نشون میدین لایبرری های زیادی هم برای این کار وجود دارن که گوگل جدیدترنش به اسم گلاید رو عرضه کرده. منطق تلگرام هم دقیقا به همین شکل کار میکنه دوست عزیز.

  • عرفان گفت:

    با سلام و عرض خسته نباشید خدمت شما استاد عزیز
    بنده یه برنامه دارم مینویسم که از روی برنامه شما نوشته شده
    اما تعداد تب ها توی view pager زیاد هست وقتی برنامه رو ران میکنم شکل فشرده و ضایعی میگیره
    میخوام که تب ها اسکرول بشن تا ظاهر درستی بگیره
    ولی نمیدونم باید چیکار کنم
    با تشکر

  • m.khojasteh.a گفت:

    ولی کار با بیسیک آسون تر از اندروید استدیو هستش
    و چرا بخش هاش انقدر پراکنده هستش

  • احسان گفت:

    سلام آقای بابا زاده وقت بخیر
    میخواستم صفحه تنظیمات برناممو مثل فیلمتون درست کنم ولی هرچقدر تلاش کردم نتونستم کتابخانه ای ک برای اسلایدر اضاف کردین رو ب پروژم اضاف کنم این کتابخونه رو میگم
    compile ‘com.github.rey5137:material:1.2.4’ خواستم اگه امکانش هست ی راهنمایی بهم کنین چیکار کنم بدجور لنگ میمونم اگه نتونم درست کنم.شاید سوالام خیلی ابتدایی باشه ولی چون فرصت یادگیری از صفر رو ندارم ایقد مزاحمتون میشم.

  • احسان گفت:

    Error:Could not determine artifacts for com.github.rey5137:material:1.2.4: No cached version available for offline mode
    آقای بابا زاده اروری ک برای اضاف کردن کتابخونه برام میاد اینه.
    تااینجای فیلمتون هرچی بوده برام اضاف شده ولی این نمیشه آخه قبلی هارو هم با همین فیلتر شکنی ک داشتم اضاف کردم.ب نظرتون حتما مشکل از سرعت اینترنتمه؟

  • احسان گفت:

    چنتا مشکل دیگه هم داشتم میترسم دیر بخونین مجبورم الان بپرسم.
    صفحه جستجورو مطابق با فیلم درست کردم ولی تو فیلم ب نظرم کلیک روی کارد ویو هاشو فراموش کردین اگه لطف کنین بگین براش چی بنویسم ممنون میشم.

    • سلام و درود
      بسیار ساده است دوست عزیز
      دقیقا مثل کاری که توی صفحه ی اول برای کارد ویو ها انجام دادیم توی صفحه ی سرچ انجام بدین، کد ها کاملا یکسان هست فقط کافیه کمی adapter رو تغییر بدین

      • احسان گفت:

        سلام دوباره به استاد بابازاده.
        همه کداشو از آداپتر اولی ک درست کرده بودین کپی کردم البته منظورم قسمت کلیک روی کارد ویو هست
        اسم آرایه ک باید اطلاعات رو ازش بگیره هم کردم allItems ولی مشکلی ک هست به نظرم مربوط میشه ب اینتنی ک براش کپی کردم خیلی جاهاشو تغییر دادم ولی باز برنامم خطا میده و بسته میشه. لطف کنین ی نگا ب این کد آداپتر سرچ ک نوشتم بندازین و بگین کجاشو تغییر بدم.اگه امکانش هست یکم سریع تر جوابمو بدین شرایتطم خیلی داغونه باید فردا صبح تحویل بدم
        package quran.ehsan.moradi.quran.search;

        import android.content.Context;
        import android.content.Intent;
        import android.graphics.Typeface;
        import android.support.v7.widget.RecyclerView;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.ImageView;
        import android.widget.LinearLayout;
        import android.widget.TextView;

        import quran.ehsan.moradi.quran.Main1Activity;
        import quran.ehsan.moradi.quran.Main2Activity;
        import quran.ehsan.moradi.quran.R;
        import quran.ehsan.moradi.quran.ViewHolder;

        public class AdapterSearch extends RecyclerView.Adapter {

        Context context;
        LayoutInflater inflater;
        TextView title;
        ImageView avatar;
        LinearLayout cardAdapter;

        public AdapterSearch(Context context){
        this.context=context;
        inflater=LayoutInflater.from(context);
        }
        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view=inflater.inflate(R.layout.adapter_card_view,parent,false);

        title=(TextView)view.findViewById(R.id.title);
        avatar=(ImageView)view.findViewById(R.id.avatar);
        cardAdapter=(LinearLayout)view.findViewById(R.id.card_adapter);

        ViewHolder viewHolder=new ViewHolder(view);
        return viewHolder;
        }

        @Override
        public void onBindViewHolder(ViewHolder holder, int position) {

        holder.title.setText(Main1Activity.allItems.get(position).getTitle());
        String imgAddress=Main1Activity.allItems.get(position).getImgAddress();
        int id=Main1Activity.context.getResources().getIdentifier(imgAddress, “drawable”, Main1Activity.context.getPackageName());
        holder.avatar.setBackgroundResource(id);

        Typeface Nazanin=Typeface.createFromAsset(Main1Activity.context.getAssets(), “fonts/nazanin.ttf”);
        holder.title.setTypeface(Nazanin);

        holder.cardAdapter.setOnClickListener(clickListener);
        }

        View.OnClickListener clickListener=new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        int position=view.getId();
        Intent intent=new Intent(Main1Activity.context,Main2Activity.class);
        intent.putExtra(“name”,”allItems”);
        intent.putExtra(“id”,position + “”);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Main1Activity.context.startActivity(intent);

        }
        };

        @Override
        public int getItemCount() {
        return Main1Activity.allItems.size();
        }
        }

  • احسان گفت:

    مشکل بعدیم اینه برا گرد کردن عکسا اون حاشیه دایره ای شکل برام میاد ولی عکس توش ب حالت مربع میمونه با هرسایزی امتحان کردم نشد ب نظرم ی حاشیه سفید رنگ داخل دایره ب شکل مربع هس.سرچ کردم ک از بقیه کتابخونه ها استفاده کنم ولی اونا هم از sdk ای ک دارم بالاتر بودن.اینم کد xml adapter_cardview

  • Ali گفت:

    سلام آقای بابا زاده.
    من توی قسمت خواندن اطلاعات از دیتا بیس مشکل دارم .
    من از برنامه بکاپ گرفتم واز اونجا دیتا بیس رو برداشتم
    به من این ارور رو می ده:

    ۰۸-۲۴ ۱۴:۱۱:۵۰٫۵۷۹ ۵۴۸۹-۵۴۸۹/com.example.alima.bookproject E/SQLiteLog: (1) no such table: main
    ۰۸-۲۴ ۱۴:۱۱:۵۰٫۵۸۱ ۵۴۸۹-۵۴۸۹/com.example.alima.bookproject E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.alima.bookproject, PID: 5489
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.alima.bookproject/com.example.alima.bookproject.mainPage.ActivityMain}: android.database.sqlite.SQLiteException: no such table: main (code 1): , while compiling: SELECT * FROM main WHERE id = ‘flower’
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
    at android.app.ActivityThread.access$800(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5254)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
    Caused by: android.database.sqlite.SQLiteException: no such table: main (code 1): , while compiling: SELECT * FROM main WHERE id = ‘flower’
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37)
    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
    at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
    at com.example.alima.bookproject.mainPage.ActivityMain.selectFlower(ActivityMain.java:187)
    at com.example.alima.bookproject.mainPage.ActivityMain.onCreate(ActivityMain.java:104)
    at android.app.Activity.performCreate(Activity.java:5990)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
    at android.app.ActivityThread.access$800(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5254)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

    • سلام و درود
      مشکل به این خاطر هست که نمیتونه به table دیتابیس دسترسی داشته باشه
      اول از همه دیتابیستون رو چک کنید که کاملا درست و سالم باشه
      بعدش متد کپی دیتابیس رو دقیقا مثل ویدیو آموزشی بنویسید
      در نهایت باید بدون مشکل فرآیند ها اجرا بشن
      اگر بازهم مشکلی داشتید بپرسید

  • sh.m گفت:

    سلام و خسته نباشید بی نهایت به شما واقعا که عالی هستین .
    بنده دنبال میکنم اموزشتونو قسمت ۶ام که در مورد sqliteو اتصال دیتا بیس هست . در زمینه ی داینامیک کمی اماتور هستم . و هر چقدر ب دنبال اموزش برای ساخت دیتا بیس با پسوند.sqliteگشتم چیزی نتونستم پیدا کنم.
    و همه دیتابیس ها در نرم افزار SQLite manager با پسوند.db اکسپورت میشن .
    چطور باید دیتابیس با این پسوند ایجاد کرد .؟؟؟
    خواهش میکنم راهنمایی کنید .سایت یا لینکی رو برای اموزش معرعفی کنید . یا اگر امکانش هست لطف کنید و اموزشش رو بزارید باتشکر فراوان

    • سلام و درود
      یه راه بهتر پیشنهاد میکنم بهتون مخصوص آدمای تنبل مثل خودم 🙂
      دیتابیس رو با پسوند db بسازید و در نهایت اسمش رو تغییر بدید و .sqlite بنویسید تهش، فقط اگر از ویندوز استفاده میکنین باید یه تیکی رو توی folder option ویندوز بزنین تا پسوند فایل ها رو بهتون نشون بده
      این کار رو انجام بدین اگه مشکلتون حل نشدش بفرمایید بیشتر راهنماییتون کنم

      • sh.m گفت:

        سوالی دیگه هم داشتم از حضورتون وقتی بنده کد مربوط به ایجاد فولدر book-database رو میزنم این فولدر داخل sdcard ایجاد نمیشه .بلکه تو این مسیر
        (storage/emulated/0/book-database)ادرس دهی میشه ..
        و داخلdevice manitor هم sdcard زیر مجموعه storage نیست.
        چندین بارانجام دادم تغییری ایجاد نشد.

  • دانیال گفت:

    سلام و خسته نباشید عرض حضورتون که تو قسمت PageFragment هر چی نگاه کردم کدی که نوشتم عین کد شماست (هنوز نفهمیدم کجاشو سوتی دادم ) ولی با سرچ گوگل و استک آور فلو و اینا حل نشد
    وقتی روی یه آیتم کلیک میکنم که بره تو اکتیویتی جدید ارور
    W/FragmentManager: moveToState: Fragment state for PageFragment{d996024 #1 id=0x7f0c0076 android:switcher:2131492982:0} not updated inline; expected state 3 found 2
    یا ارور RecyclerView: No adapter attached; skipping layout میده خیلی گشتم ولی چیزی پیدا نکردم فقط نوشته بودن که آداپترت خالیه ….. ولی نیست !!!!
    ممنون اگه راهنمایی کنید

  • عرفان گفت:

    با سلام خدمت استاد عزیز
    بنده کد نویسیم رو تکمیل کردم وقتی برنامه رو اجرا میکنم توی گوشی های که زبان انگلیسی دارن نرم افزار مشکلی نداره ولی توی گوشی های که زبان فارسی هست همه منو ها و گزینه ها برعکس هست و به هم ریخته شده
    لطفا راهنمایی بفرمایید چطور این مشکل رو حل کنم
    با تشکر

    • abbasalim گفت:

      سلام. داخل فایل منیفیستتون یه جا نوشته supportRtl که مقدارش برابر true هست اون رو false کنید

      • عرفان گفت:

        خیلی خیلی ممنون از کمکتون
        دو تا مشکل دیگه هم دارم
        اول اینکه میشه Text view رو justify کرد؟
        و دوم اینکه توی قسمت علاقه مندی ها من دقیقا طبق آموزش پیش رفتم ولی یه ایراد کوچیک داره، وقتی مطلبی رو اضافه میکنم به علاقه مندی ها نمیره توی لیست علاقه مندی ها باید یک بار برنامه رو ببندم دوباره باز کنم ولی اگه داخل برنامه، برنامه ای رو از توی لیست علاقه مندی ها بردارم بلافاصله از لیست میره
        چندبار چک کردم کدم رو ولی مشکل نداشته
        با تشکر

  • محمد گفت:

    سلام
    این دیتابیسی که تو برنام۵ استفاده کردینو از کجا باید دانلود کنیم

  • اسماعیل گفت:

    با عرض سلام
    من تمام آموزش های این کتاب رو که گذاشتین روی سایت گرفتم و دارم آموزش میبینم همون اول که باید فایل compile ‘com.android.support:design:23.2.0’ را sync now کنم بعد از حدودا ۲۰ دقیقه سینک میشه اما بیغام install repository and sync project رو میده از فیلتر شکن هم استفاده میکنم و قتی هم روی لینکش میزنم میگه all packeges are not available for download ممنون میشم راهنماییم کنید مرسی.
    البته اینو بگم فایل testCompile ‘junit:junit:4.12’ رو از من ارور میگرفت که تو سایت خودتون دیدم گفته بودن دیلیتش کنم و tryagain رو بزنم که اینکارو کردم و این فایل دیلت شد و مشکل این خطایم حل شد

  • احسان گفت:

    خواهشا جواب سوالو بدین بقیش حل شد فقط مشکل صفحه جستجو رو دارم.تا فردا صب بیشتر وقت نیست برام.

  • keta گفت:

    سلام استاد گرامی
    آموزشتون رو هنوز استفاده نکردم ولی با توجه به اسکرین ها و ویدیو نمونه احتمالا خوب باشه
    فقط اگه امکانش هست امکان تغییر فونت رو هم اضافه کنید

  • احسان گفت:

    خیلی عجیبه جواب همه کامنتارو دادین بغیر از کامنتای منو.??

  • poorya گفت:

    با سلام وخسته نباشید استاد بابازاده بهتر نبود ساخت دیتابیس رو اضافه میکردید چون من تو ساخت دیتابیس از طریق sqlite manager به مشکل خوردم وقتی table رو میسازیم و بعد مثلا column name رو id میزنیم data type رو چی بزنیم یا گزینه primary key رو تیک بزنیم یا نه و بقیش چجوری تعیین کنیم این خودش یه مبحث آموزشی میشه اضافه کنین تا بقیه افراد مثه من سردرگم نمونن تو ساخت دیتابیس 🙁
    با تشکر

    • سلام و درود
      بله کاملا درسته اگر برای مبحث ساخت دیتابیس یک مبحث جدا قرار داشت خیلی بهتر میشد
      انشاالله در آموزش بعدی که سمت سرور هست یک بخش رو به صورت کامل به مباحث سمت سرور اختصاص میدیم دوست عزیز
      موفق باشید

  • عرفان گفت:

    سلام خدمت استاد عزیز
    شما توی آموزش قسمت جستجو کلیک رو کارد ویو ها رو توضیح ندادید
    من ۸ تا دسته بندی دارم که خیلی زیاده
    اگه میشه راهنمایی کنید چطور باید به جستجو کلیک رو کارد ویو ها رو اضافه کنم
    با تشکر

    • سلام و درود
      فکر نمیکردم برای این موضوع نیاز به ضبط ویدیو باشه چون در مباحث قبلی این مورد رو توضیح دادم
      اگر وقت بشه یه ویدیو تکمیلی برای این مورد ضبط میکنم و توضیح میدم
      اما اگر مباحث قبلی رو خوب درک کرده باشین توضیح دادم که در recyclerview چطور برای هر card یک onclick بنویسین و این موضوع هم دقیقا مشابه همینه

  • salah گفت:

    سلام من وقتی اسکرول میکنم تولبارم تا نصفش مخفی میشه اما نصفش می مونه؟لطفا راهنمای کنید.

  • اسماعیل گفت:

    با عرض سلام
    من دارم طبق اموزشهای شما پیش میرم که به یه مضکلی برخورد کردم در فصل یک که شما ویو پیجر ساختین و تب لیوت من هم کد های مربوطه رو نوشتم اما وارد برنامه نمیشه و وقتی با جنیموشن اجراش میکنم ارور unfortonataly.my application has stoped رو میده عکس های کد رو گذاشتم اگه میشه لطف کنید ببینید چه اشتباهی کردم که اجرا نمیشه مرسی.

    http://arnikaia.ir/Image/1.jpg
    http://arnikaia.ir/Image/2.jpg
    http://arnikaia.ir/Image/3.jpg
    http://arnikaia.ir/Image/4.jpg

  • اسماعیل گفت:

    باعرض سلان
    برای کارت ویو و ریسایکلر ویو این دو فایل کتابخونه ای تو لیست خود اندروید استودیو هست ایا میشه که sdk24 رو دانلود کنم و از اون به جای نسخه ی ۲۳ استفاده کنم یا نه؟
    compile ‘com.android.support:recyclerview-v7:24.2.0’
    compile ‘com.android.support:cardview-v7:24.2.0’

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

  • مرتضی گفت:

    سلام من این دوره رو خریدم… لطفا فایل md_book.sqlite رو هم قرار بدبد یا برام ایمیل کنید.ممنون

  • salah گفت:

    سلام اقای بابازاده لطفا راهنمای کنید من توی قسمتی که recyclerview رو به اکتیویتی وصل می کنید مشک دارم .هر کاری میکنم وصل نمیشه.
    این خطا رو میده: java.lang.IllegalStateException: Could not find a method onClickToActivity(View) in the activity class com.android.tools.fd.runtime.BootstrapApplication for onClick handler on view class android.widget.LinearLayout with id ‘card_adapter’

    و این خطا:۰۸-۲۸ ۱۶:۴۲:۰۷٫۰۲۵ ۱۳۹۲۳-۱۳۹۲۳/com.salahnaseri.book.appbook E/RecyclerView: No adapter attached; skipping layout

    • abbasalim گفت:

      سلام متدonClickToActivity در .BootstrapApplication تعریف نکردید یا public نیست یا view ورودی نمیگیره

      • salah گفت:

        اصلا همچین چیزی رو من توی فیلم ندیدم.
        اینم کد: holder.cardAdapter.setOnClickListener(clickListener);
        }
        View.OnClickListener clickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        Log.i(“Log”, “hear!!”);
        Intent intent = new Intent(ActivityMain.context, ActivityInnerPage.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        ActivityMain.context.startActivity(intent);
        }
        };
        توی متد public void onBindViewHolder

  • اسماعیل گفت:

    با عرض سلام
    من دوتا سوال دیشب پرسیدم در حال بررسی زده بود اما الان حذف شده لطفا ببینید چیشده ممنون

  • عرفان گفت:

    با سلام خدمت استاد عزیز
    یه مشکل جدید دارم اونم اینه که اگه برنامه رو ران کنم و کامل نبندم یعنی فقط دکمه home رو بزنم و بعد دوباره بیام داخل برنامه تعداد برنامه ها توی هر کارد ویو دو برابر میشه یعنی دقیقا مثلا اگه ۳ تا کارد ویو باشه توی یه صفحه میشه ۶ تا
    چطور باید این مشکل رو رفع کنم؟
    با تشکر

  • اسماعیل گفت:

    با عرض سلام من چند روزه یه سوال دارم اما کسی نیست راهنماییم کنه ممنون میشم کمک کنه
    تو فصل اول از اموزش که کار با ویوپیجر و تب لایوت هست وقتی اجرا میکنم این ارور هارو میده عکس هایی که میزارم مربوط به لاگ کت درون برنامه هست.ممنون میشم راهنماییم کنید که برای چی اجرا نمیضشه برنامه
    http://s6.uplod.ir/i/00815/ivauu6bujpvo.png
    http://s6.uplod.ir/i/00815/r79qcwlrk2l0.png
    http://s6.uplod.ir/i/00815/1k83lglcqv7n.pn

    سوال بعدیم هم اینه که اگه SDK24 رو دانلود کنم و لایبرریهای برنامه هم ۲۴٫۲٫۰ باشه مسیله نداره؟

    لطفا راهنماییم کنید مرسی

  • اسماعیل گفت:

    با سلام دوباره اقای بابازاده این کل ارروری هست که توی لاگ کت نمایش میده هنگام اجرای برنامه که گفته بودین بفرستم براتون توی عکسهای بالا شاید مقداریش نلود اینجا کلش هست فقط چپ چین نیست راست چین شده متاسفانه.
    ۰۸-۳۱ ۰۵:۰۷:۴۳٫۸۰۷ ۲۳۰۴-۲۳۰۴/com.example.college_pc.myapplication I/art: Late-enabling -Xcheck:jni
    ۰۸-۳۱ ۰۵:۰۷:۴۴٫۱۵۶ ۲۳۰۴-۲۳۰۴/com.example.college_pc.myapplication W/art: Failed to find OatDexFile for DexFile /data/data/com.example.college_pc.myapplication/files/instant-run/dex/slice-slice_4-classes.dex ( canonical path /data/data/com.example.college_pc.myapplication/files/instant-run/dex/slice-slice_4-classes.dex) with checksum 0x58a5f2f0 in OatFile /data/data/com.example.college_pc.myapplication/cache/slice-slice_4-classes.dex
    ۰۸-۳۱ ۰۵:۰۷:۴۴٫۲۸۲ ۲۳۰۴-۲۳۰۴/com.example.college_pc.myapplication W/art: Failed to find OatDexFile for DexFile /data/data/com.example.college_pc.myapplication/files/instant-run/dex/slice-slice_2-classes.dex ( canonical path /data/data/com.example.college_pc.myapplication/files/instant-run/dex/slice-slice_2-classes.dex) with checksum 0x92dada1f in OatFile /data/data/com.example.college_pc.myapplication/cache/slice-slice_2-classes.dex
    ۰۸-۳۱ ۰۵:۰۷:۴۴٫۳۸۳ ۲۳۰۴-۲۳۰۴/com.example.college_pc.myapplication W/art: Failed to find OatDexFile for DexFile /data/data/com.example.college_pc.myapplication/files/instant-run/dex/slice-slice_0-classes.dex ( canonical path /data/data/com.example.college_pc.myapplication/files/instant-run/dex/slice-slice_0-classes.dex) with checksum 0xf116a42b in OatFile /data/data/com.example.college_pc.myapplication/cache/slice-slice_0-classes.dex
    ۰۸-۳۱ ۰۵:۰۷:۴۴٫۸۷۵ ۲۳۰۴-۲۳۱۶/com.example.college_pc.myapplication W/art: Suspending all threads took: 17.819ms
    ۰۸-۳۱ ۰۵:۰۷:۴۴٫۸۷۸ ۲۳۰۴-۲۳۱۶/com.example.college_pc.myapplication I/art: Background sticky concurrent mark sweep GC freed 2011(578KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 985KB/1623KB, paused 18.377ms total 31.602ms
    ۰۸-۳۱ ۰۵:۰۷:۴۵٫۰۶۲ ۲۳۰۴-۲۳۱۶/com.example.college_pc.myapplication W/art: Suspending all threads took: 28.412ms
    ۰۸-۳۱ ۰۵:۰۷:۴۵٫۰۶۴ ۲۳۰۴-۲۳۱۶/com.example.college_pc.myapplication I/art: Background partial concurrent mark sweep GC freed 1606(317KB) AllocSpace objects, 0(0B) LOS objects, 45% free, 1212KB/2MB, paused 28.816ms total 34.839ms
    ۰۸-۳۱ ۰۵:۰۷:۴۵٫۴۸۹ ۲۳۰۴-۲۳۳۳/com.example.college_pc.myapplication D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true

    [ ۰۸-۳۱ ۰۵:۰۷:۴۵٫۵۰۳ ۲۳۰۴: ۲۳۰۴ D/ ]
    HostConnection::get() New Host Connection established 0xf3fb30b0, tid 2304
    ۰۸-۳۱ ۰۵:۰۷:۴۵٫۵۰۸ ۲۳۰۴-۲۳۰۴/com.example.college_pc.myapplication D/Atlas: Validating map…
    ۰۸-۳۱ ۰۵:۰۷:۴۵٫۵۸۸ ۲۳۰۴-۲۳۰۴/com.example.college_pc.myapplication D/AndroidRuntime: Shutting down VM
    ۰۸-۳۱ ۰۵:۰۷:۴۵٫۵۸۹ ۲۳۰۴-۲۳۰۴/com.example.college_pc.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.college_pc.myapplication, PID: 2304
    android.support.v4.app.SuperNotCalledException: Fragment pagefragment{31e89b17 id=0x7f0c006a android:switcher:2131492970:0} did not call through to super.onCreate()
    at android.support.v4.app.Fragment.performCreate(Fragment.java:1953)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1029)
    at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:926)
    at android.support.v4.app.Fragment.setUserVisibleHint(Fragment.java:876)
    at android.support.v4.app.FragmentPagerAdapter.setPrimaryItem(FragmentPagerAdapter.java:130)
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1175)
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1025)
    at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1545)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2615)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2015)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1173)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1379)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
    at android.view.Choreographer.doCallbacks(Choreographer.java:580)
    at android.view.Choreographer.doFrame(Choreographer.java:550)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5254)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
    ۰۸-۳۱ ۰۵:۰۷:۵۳٫۰۵۱ ۲۳۰۴-۲۳۰۴/com.example.college_pc.myapplication I/Process: Sending signal. PID: 2304 SIG: 9

  • اسماعیل گفت:

    با عرض سلام اون مشکل که برنامه اجرا نمیشد حل شد توی خطاها دیدم که از oncreate درون pagefragment خطا میگیره که رفتم و super.onCreate(savedInstanceState); خط رو که ننوشته بودم نوشتم وحل شد
    فقط لطف کنید درباره sdk ها بهم توضیح بدین ممنون میشم چون الان گیر همین مسیله هستم دیگه مرسی

  • میثم گفت:

    با سلام
    من تا ویدئوی آخر پروژه رو کار کردم اما متاسفانه تا آخرین قسمت شما ViewPager رو راستچین نکردین. این مشکلی هست که خیلی ها باهاش مواجهن.
    حالا اگر لطف کنین نحوه راستچین شدن رو توضیح بدین و یا این که مجبوریم از کتابخانه های راستچین استفاده کنیم.
    با تشکر

  • جواد اشکش گفت:

    با سلام
    من گزینه tabLayout.setupWithViewPager را در ساخت کتاب ندارم دلیلش چیه؟ و چطور بیارمش

  • محمد گفت:

    با سلام خدمت استاد ارجمند
    توی آموزش یه جا گفته بودید برنامه یه باگی داره که باعث میشد رنگ کارد ویو ها خاکستری بشه
    گفتید خودش حل میشه
    ولی متاسفانه هنوزم که هنوزه خاکستریه برای من
    میشه بگید چطور این مشکل رو حل کنم؟

  • دانیال گفت:

    سلام خسته نباشید من viewpager.setCurrentItem(3); رو هر جای SetTabOptions میذارم عمل نمیکنه و هنوز از تب ۱ که سمت چگه شروع میکنه …. آیا جای خاصی باید بذاریم ؟؟
    و سوال دوم ام هم اینه که وقتی تو تب سمت راست که شماره ۳ ـه وقتی رو ایتم کلیک کرد چجوری بگم برو تب وسط و یه سری چیزا رو لود کن …. مثلا تب راست کتگوری محصوله و ثب وسط محصولات زیر شاخه اون کتگوری
    ممنون

  • peyman گفت:

    سلام خسته نباشید لطف کنید منو ازاین ابهام در بیارید اگه اطلاعاتی دارید !

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

    http://8pic.ir/images/edwl7ek3ezu9962bjf1c.png

    تو عکس بالا ببینید من هربار ک میخام وارد بشم اینهمه باید صبر کنم تازه شاید سالم بلد بشه برنامم تایم gradle رو زده ۱۷ دقیقه پیش هنوزم ادامه داره ..عایا مشکل از سیسیتم منه ؟ینی سیستم باید قوی باشه ک سریع اجرا شه یا نه مشل جای دیگست من خیلی علاقه مند شدم به برنامه نویسی از ایکلیپس شروع کردم به آدروید استدیو رسیدم ک متریال بسازم ….لطفا اگه اطلاعاتی دارید بگید وهمچنین خیلی ممنون از اموزشای عالیتون …سپاس

  • دانیال گفت:

    با سلام مجدد
    سوال دیگه برام پیش اومد اینکه وقتی من محتویات آرایه رو تغییر میدم دفه اولی که هنوز چیزی توی ویوپیچ نیست باید صفحه رو خاموش روشن کنم تا نمایش بده یا اینکه دوباره پلی بزنم تا بره و بیاد تا نشون بده
    حالا چه جوری میتونم بگم هر دفه که متدی که برای پر کردن آرایه س رو صدا میکنم اتومات این ویوپیجر رو هم ریفرش کنه
    ممنون

  • رضا گفت:

    با سلام
    فایل دیتابیس که در اموزش ها ازش استفاده شده رو از کجا میتونم تهیه کنم چون تو اموزش گفتین روی سایت هست
    یکجا دیدم گفته بودین به یکی از کاربرها که درون سورسی که گذاشتین هست اما منی که فایل اموزشی رو خریدم و سورس رو نگرفتم باید از کجا این فایل رو بدست بیارم
    ممنون میشم راهنماییم کنید
    سپاس

  • Mehdi گفت:

    سلام آقای بابا زاده.
    من در منیفست دوتا متود دسترسی Read و write رو می نویسم ولی باز هم به من permission denied می ده

    http://s3.img7.ir/arV1G.jpg

  • mehran گفت:

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

  • bluee گفت:

    سلام .من بخش ۱۴ رو دوبار دانلود کردم ولی وقتی دانلود میشه نمیتونم بازش کنم مگه پسورد http://www.esfandune.ir نیستش؟

  • salah گفت:

    سلام من پروژه رو تمام کردم اما برنامه یکم گیر میکنه.مثلا زمانی که اسکرول میکنم یا ویوپیجر ها
    مشکل از کجاست؟

  • Mehdi گفت:

    سلام آقای بابا زاده.
    من یه مشکلی توی لیس علاقه‌مندی دارم.
    زمانی که حداقل یک مورد favorite شده باشه هیچ مشکلی نداره و اگر چیزی رو لایک و دیسلای بشه مشکلی نداره ولی اگر لیست علاقه مندی ها خالی باشه اگر چیزی رو favorite کنی چیزی نمیشه و باید از برنامه خارج شد و دوباره وارد شد تا favorite بشه.

  • poorya گفت:

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

  • محمد گفت:

    سلام آقای بابا زاده
    ۱-من آموزش رو قدم به قدم با خودتون پیش رفتم اما تووی آموزش شماره ۷ متوقف شدم.
    من فایل دیتا بیس رو خود نوشتم بافیلد های جدول شما
    دیتابیس رو با پلاگین موزیلا به اسم sqlite manager نوشتم
    به من یه اروری میده که
    android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
    خواهش میکنم اگر میشه سریعتر جواب بفرمایید و به ایمیلم جواب بدین
    m.sinaki1111@gmail.com
    من روی جنی موشن با api23 روی google nexus6 برنامه رو تست میکنم
    ۲-اگر بخوام دیتا بیس رو خارج برنامه خودم بسازم و اطلاعاتم رو تووش قرار بدم باید از چه برنامه ای استفاده کنم؟؟؟

  • رضا گفت:

    اقا بیزحمت دیتابیس را اپلود کنید. من الان ارم قسمت دیتابیس رو میبینم به فایلش نیاز دارم، به تلگرامتون هم پیام دادم چک نکردین هنوز.
    منتظرم.

  • نفیسه گفت:

    سلام
    مرسی از آموزشای خوبتون…
    من تو ویدیوی اول به چندتا ارور برخوردم
    هرجا که R داشتیم رو ارور داده
    همینطور setupWithViewPager
    و ViewPager.setAdapter(new AdapterFragment(getSupportFragmentManager()));
    و
    مبتدی هم هستم و دارم اینو برای پروژه کارشناسیم آماده میکنم.
    ممنون میشم زود جواب بدین.

  • نفیسه گفت:

    و
    و new در new String[] {“ایرانی”, “فرنگی”, “علاقه مندی ها”};
    و { super(fm);}
    و {
    return PageFragment.newInstance(position + 1);
    }
    و position

  • احسان گفت:

    سلام استاد بابا زاده .
    ما هنوز منتظر آموزش تکمیلی صفحه جستجو هستیماا.بی زحمت فکرمون باشین.عید قربان هم پیشاپیش مبارک

  • khoodae3 گفت:

    با سلام
    ببخشید اموزش ساخت کتاب همراه با سورس چنده؟
    و در ضمن برای هردوش تخفیف عید قربان محصوب میشه

  • محمد گفت:

    آقای بابا زاده من فایل دیتا بیس رو کپی کردم و وجود داره روی internal storage اما حجم اون کمتره و دوتا فایل وجود داره داخل پوشه ی book-database به نام های md_book.sqlite و md_book.sqlite-journal که وقتی md_book.sqlite رو باز میکنم تووش یه table هست به نام android meta data من الان کدم رو میذارم شما نگاه کنید
    public class ActivityMain extends AppCompatActivity {
    public static Context context;
    DrawerLayout drawerLayout;
    NavigationView navigationView;
    ImageView hamburger;
    SQLiteDatabase database;
    String destPath;
    /* public DatabaseHelper(Context context){
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    ctx = context;
    DATABASE_PATH = ctx.getFilesDir().getPath();
    }
    */
    public static ArrayList flower = new ArrayList();
    public static ArrayList tree = new ArrayList();
    public static ArrayList favorite = new ArrayList();
    /**
    * ATTENTION: This was auto-generated to implement the App Indexing API.
    * See https://g.co/AppIndexing/AndroidStudio for more information.
    */
    private GoogleApiClient client;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.navigation_activity_main);

    context = getApplicationContext();
    setTabOption();

    drawerLayout = (DrawerLayout) findViewById(R.id.navigation_drawer);
    navigationView = (NavigationView) findViewById(R.id.navigation_view);
    hamburger = (ImageView) findViewById(R.id.hamburger);

    hamburger.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    drawerLayout.openDrawer(Gravity.RIGHT);
    }
    });

    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.setting) {
    Log.i(“LOG”, “HELLO!!!”);
    }
    return true;
    }
    });

    try {
    destPath= Environment.getExternalStorageDirectory().getAbsolutePath() + “/”+”book-database”+”/”;
    File file = new File(destPath);
    if (!file.exists()&& !file.isDirectory()) {
    file.mkdirs();
    file.createNewFile();
    CopyDB(getBaseContext().getAssets().open(“md_book.sqlite”), new FileOutputStream(destPath +”/”+ “md_book.sqlite”));
    }
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

    selectFlower();
    selectTree();
    selectFavorite();

    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
    }

    @Override
    public void onBackPressed() {
    if (drawerLayout.isDrawerOpen(Gravity.RIGHT)) {
    drawerLayout.closeDrawer(Gravity.RIGHT);
    } else {
    super.onBackPressed();
    }
    }

    private void CopyDB(InputStream inputStream, OutputStream outputStream) throws IOException {
    byte[] buffer = new byte[1024];
    int length;
    while ((length = inputStream.read(buffer)) > 0) {
    outputStream.write(buffer, 0, length);
    }
    inputStream.close();
    outputStream.close();

    }

    private void setTabOption() {
    ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    viewPager.setAdapter(new AdapterFragment(getSupportFragmentManager()));
    TabLayout tabStrip = (TabLayout) findViewById(R.id.tabs);
    tabStrip.setupWithViewPager(viewPager);
    }

    private void selectFlower() {

    database = SQLiteDatabase.openOrCreateDatabase(destPath + “/md_book.sqlite”, null);
    Cursor cursor = database.rawQuery(“SELECT * FROM main WHERE subject = ‘flower'”, null);
    while (cursor.moveToNext()) {
    String title = cursor.getString(cursor.getColumnIndex(“title”));
    String content = cursor.getString(cursor.getColumnIndex(“content”));
    String more = cursor.getString(cursor.getColumnIndex(“more”));

    String subject=cursor.getString(cursor.getColumnIndex(“subject”));

    String imgAddress = cursor.getString(cursor.getColumnIndex(“img_adrs”));
    int id = cursor.getInt(cursor.getColumnIndex(“id”));

    Structure struct = new Structure(title,content, more,imgAddress , id);
    struct.setTitle(title);
    struct.setContent(content);
    struct.setMore(more);

    struct.setImgAddress(imgAddress);
    struct.setId(id);

    flower.add(struct);
    }
    }

    private void selectTree() {
    database = SQLiteDatabase.openOrCreateDatabase(destPath + “/md_book.sqlite”, null);
    Cursor cursor = database.rawQuery(“SELECT * FROM main WHERE subject = ‘tree'”, null);
    while (cursor.moveToNext()) {
    String title = cursor.getString(cursor.getColumnIndex(“title”));
    String content = cursor.getString(cursor.getColumnIndex(“content”));
    String more = cursor.getString(cursor.getColumnIndex(“more”));
    String subject=cursor.getString(cursor.getColumnIndex(“subject”));

    String imgAddress = cursor.getString(cursor.getColumnIndex(“img_adrs”));
    int id = cursor.getInt(cursor.getColumnIndex(“id”));

    Structure struct = new Structure(title,content, more,imgAddress , id);
    struct.setTitle(title);
    struct.setContent(content);
    struct.setMore(more);

    struct.setImgAddress(imgAddress);
    struct.setId(id);

    flower.add(struct);
    }
    }

    private void selectFavorite() {
    database = SQLiteDatabase.openOrCreateDatabase(destPath + “/md_book.sqlite”, null);
    Cursor cursor = database.rawQuery(“SELECT * FROM main WHERE fav = 1”, null);
    while (cursor.moveToNext()) {
    String title = cursor.getString(cursor.getColumnIndex(“title”));
    String content = cursor.getString(cursor.getColumnIndex(“content”));
    String more = cursor.getString(cursor.getColumnIndex(“more”));
    String subject=cursor.getString(cursor.getColumnIndex(“subject”));

    String imgAddress = cursor.getString(cursor.getColumnIndex(“img_adrs”));
    int id = cursor.getInt(cursor.getColumnIndex(“id”));

    Structure struct = new Structure(title,content, more,imgAddress , id);
    struct.setTitle(title);
    struct.setContent(content);
    struct.setMore(more);

    struct.setImgAddress(imgAddress);
    struct.setId(id);

    flower.add(struct);
    }
    }

    @Override
    public void onStart() {
    super.onStart();

    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    client.connect();
    Action viewAction = Action.newAction(
    Action.TYPE_VIEW, // TODO: choose an action type.
    “ActivityMain Page”, // TODO: Define a title for the content shown.
    // TODO: If you have web page content that matches this app activity’s content,
    // make sure this auto-generated web page URL is correct.
    // Otherwise, set the URL to null.
    Uri.parse(“http://host/path”),
    // TODO: Make sure this auto-generated app URL is correct.
    Uri.parse(“android-app://com.example.developer.book.mainPage/http/host/path”)
    );
    AppIndex.AppIndexApi.start(client, viewAction);
    }

    @Override
    public void onStop() {
    super.onStop();

    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    Action viewAction = Action.newAction(
    Action.TYPE_VIEW, // TODO: choose an action type.
    “ActivityMain Page”, // TODO: Define a title for the content shown.
    // TODO: If you have web page content that matches this app activity’s content,
    // make sure this auto-generated web page URL is correct.
    // Otherwise, set the URL to null.
    Uri.parse(“http://host/path”),
    // TODO: Make sure this auto-generated app URL is correct.
    Uri.parse(“android-app://com.example.developer.book.mainPage/http/host/path”)
    );
    AppIndex.AppIndexApi.end(client, viewAction);
    client.disconnect();
    }
    }

    خواهشا رسیدگی کنید خیلی کارم گیره
    ممنون

    • سلام و درود
      کدها خیلی ناخوانا هستن در اینجا و چه بسا که شما هم یک سری کد اضافه کردید و تبدیل شده به یک عالمه کد بهم ریخته و درهم برهم که خوندنش بسیار سخت و طاقت فرسا هست
      تنها کمکی که الان میتونم بکنم اینه که بگم سورس رو ببینید و مقایسه کنید احتمالا جایی رو جا انداختید یا اشتباه نوشتید دوست عزیز
      در غیر این صورت نباید همچین مشکلی پیش بیادش

  • mehran گفت:

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

    • سلام و درود
      در اندروید ۶ بعضی از پرمیژن ها تغییر کردند و با جست و جوی dangerous premission در گوگل میتونید در این رابطه اطلاعات کسب کنید، یکی از دوستان هم کدی برای این قسمت نوشتند که اگر مایل باشین میتونین به تلگرام بنده پیام بدین تا براتون بفرستم
      @mbabazadeh

  • hasan گفت:

    سلام
    برای این که دیتابیس رو داشته باشیم باید سورس رو خریداری کنیم ؟؟؟؟؟؟؟

  • محمد گفت:

    سلام ببخشید من اموزش ها رو دیدم اما توی اموزش ۱۰ یه قسمتی که مینویسید رو نمیتون ببینم میشه لطفا بنویسیدش فقط این قسمتش
    private void updateFavorited دیگه بقیشو نتونستم ببینم نمیدونم مشکل از ویدیوست کفیتش پایینه یا مانیتورم

  • حامد گفت:

    سلام،ببخشید آقای بابازاده،بنده تو قسمت ریسایکل ویو مشکل دارم،وقتی که تو ریسایکل ویو یک linearlayout سفارشی درت می کنم، دیگه پیشنهاداتش نمیاد،شما هم یه طول و عرض و یه orientation بهش میدید،طول و عرض رو میشه تو قسمت دیزاین درست کرد اما مورد سوم رو هر چی مینویسم اصلا هیچی به هیچی،ممنون میشم کمک کنید???

  • عرفان گفت:

    سلام خسته نباشید
    یه مشکل توی برنامه هست اونم اینه که وقتی وارد تنظیمات برنامه میشیم بعد از اینکه فونت رو درست میکنیم و تایید رو میزنیم اگه توی صفحه اصلی برنامه کلیک بازگشت رو بزنیم دوباره برمیگرده توی منو تنظیمات
    این مشکل رو چه جوری میشه درست کرد؟

  • محمد گفت:

    ببخشید یه سوال دیگه چطوری میتونم صفحه تنظیمات و سرچ رو مثل صفحه شناور کنم اخه تو اموزش ها نبود

  • میثم گفت:

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

  • مهدی گفت:

    سلام

    لطفا آموزش بدید چطور از کتابخانه جاستیفای (justified) استفاده کنم؟

  • mjr گفت:

    سلام یه سوال داشتم چی کار کنم برنامه ای که نوشتم اندازه اجزای صفحه در همی گوشی ها به یک اندازه نشون داده می شه یعنی اگر عرض یک عکس در یک گوشی کوچک ۵ سانتی متر باشه در یک تبلت بزرگ هم ۵ سانتی متر است . باید چی کار کنم؟

  • احمد گفت:

    تورو خدا مشکل اجرا نشدن روی اندروید شش رو حل کنید

  • عرفان گفت:

    سلام
    خسته نباشید
    من چندبار پیام دادم ولی شما جواب ندادید
    خواهش میکنم توضیح بدید چطور و کجای کدها باید آرایه رو خالی کرد تا هر بار که وارد برنامه میشیم آیکون ها دو برابر نشه
    خواهش میکنم کامل توضیح بدید چون من هر جای اینترنت رو گشتم پیدا نکردم برای این مساله
    بنده تازه کار هم هستم پس خواهش میکنم کامل توضیح بدید
    با تشکر

  • rasool گفت:

    سلام خیلی ممنون بخاطر اموزش های خوبتون
    یه سوال داشتم میخواستم بدونم شما توی این مبحث فقط اموزش متریال دیزاین این کتاب رو میدید؟
    یعنی اگه بخوام اموزش نحوه ساخت دیتابیس این کتاب رو بدونم باید چی کار کنم؟

    • سلام و درود
      در رابطه با دیتابیس و ساخت دیتابیس کمی توضیح دادیم، بیشتر از اون نیاز نیست چون sqlite یک دیتابیس ساده است و نیازی به توضیح بیشتر نداره و با کمی سرچ میشه یادش گرفت
      موفق باشید

  • hAmed گفت:

    سلام
    من از android studio 1.0.1 و۲۱ SDK استفاده میکنم برای این که از کتابخونه هایی که شما میگید مثل ‘com.android.support.design’ استفاده کنم باید چیکار کنم ؟؟؟
    یعنی چجوری باید یه کتابخونه رو دانلود کنم ؟؟؟؟؟
    خواهش میکنم چواب بدین
    ممنونم از سایت و اموزش های فوق العادتون

  • MAHDI گفت:

    با سلام ,در قسمت پنجم آموزش بعد ازتعریف کردن تابع کلیک روی image viewوقتی میخوام برنامه رو توی شبیه ساز اجرا کنم با خطای زیر مواجه میشم
    android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class android.support.design.widget.NavigationView
    این هم navigation_activity_mainکه اونرو بطور کامل کپی کردم

    لطفا راهنمایی کنیدهر راهی به ذهنم میرسید امتحان کردم .

    • MAHDI گفت:

      ۱-android.support.v4.widget.DrawerLayout 2.xmlns:android=”http://schemas.android.com/apk/res/android”
      ۳- android:layout_width=”match_parent”
      ۴-android:layout_height=”match_parent”
      ۵-xmlns:app=”http://schemas.android.com/apk/res-auto”
      ۶-android:id=”@+id/navigation_drawer”
      ۷-include layout=”@layout/activity_main”
      ۸-android.support.design.widget.NavigationView
      ۹- android:layout_width=”wrap_content”
      ۱۰-android:layout_height=”match_parent”
      ۱۱-android:layout_gravity=”right”
      ۱۲-android:id=”@+id/navigation_view”
      ۱۳-android:layoutDirection=”rtl”
      ۱۴-app:headerLayout=”@layout/navigation_header”
      ۱۵app:menu=”@menu/navigation_item”
      ۱۶-android.support.design.widget.NavigationView
      ۱۷-android.support.v4.widget.DrawerLayout

  • احسان گفت:

    سلام.جان من این صفحه جستجو رو اموزششو کامل کنین دیگه روم نمیشه کامنت بذارم.تنها گیری ک دارم همین صفحه هس .فقط مشکل کلیک کردنشه فک نکنم زیاد وقت گیر باشه براتون اقای بابازاده

  • دانیال گفت:

    سلام اقای بابا زاده
    من هر کاری کردم نتونستم کتابخونه هایی رو که شما گفتید اضافه کنم از ف*یل*تر بشکن های مختلف هم استفاده کردم اما نشد
    نمیشه فایل۲۳ build tools رو از یه جایی دانلود کنم بعد اون رو توی پوشه sdk قرار بدم ؟؟
    لطفا اگه میشه بگید از کجا میتونم اونو دانلود کنم و توی کدوم پوشه دقیقا بزارم ؟؟
    ممنونم بخاطر رسیدگی تون.

  • DANIAL گفت:

    سلام اقای بابا زاده
    من هر کاری کردم نتونستم کتابخونه هایی رو که شما گفتید اضافه کنم از ف*یل*تر بشکن های مختلف هم استفاده کردم اما نشد
    نمیشه فایل۲۳ build tools رو از یه جایی دانلود کنم بعد اون رو توی پوشه sdk قرار بدم ؟؟
    لطفا اگه میشه بگید از کجا میتونم اونو دانلود کنم و توی کدوم پوشه دقیقا بزارم ؟؟
    ممنونم بخاطر رسیدگی تون.

  • سمیع گفت:

    محمد بابازاده می‌گه: مرداد ۱۲, ۱۳۹۵ در ۸:۲۰ ب.ظ
    درود permission ها را به صورت زیر تعریف کنید :‌
    String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
    requestPermissions(permissions, WRITE_REQUEST_CODE);
    و سپس به صورت زیر استفاده کنید :‌@Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    switch (requestCode) {
    case WRITE_REQUEST_CODE:
    if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
    //Permission granted.
    //Continue with writing files…
    }
    else{
    //Permission denied.
    }
    break;

    اگه امکانش هست اینو کامل توضیح بدید چیکارش کنیم مرسی.

  • هادی گفت:

    سلام خسته نباشید من توی قسمت اول آموزشتون هستم برنامه به درستی اجرا میشه ولی فقط title تب استریپ ها رو نشون نمیده همون علمی و تفریحی و علاقمندی هار رو می گم مشکل از کجاست؟

  • محمد گفت:

    سلام منآموزشتون و خریدم اما طبق اون ۳ تا تب. تعداد تب هام به جا ۳ تا ۶ تاست ولی جا نمیشه جمع میکنه. چطور اسکرول براش بزاریم؟

  • Ayda گفت:

    سلام ، وقت بخیر
    من با توجه به ویدیوی ۱ ، یه ویوپیجر ایجاد کردم ، حالا می خوام در هر تب یک لایه نمایش بده و هر لایه هم نیاز به کدهای جاوا داره … اینکار رو چه جوری می تونم انجام بدم؟
    پارت ۷ رو هم نگاه کردم … تو قسمت Page_Fragment یه onCreateView ساختم همونطوری که در اموزش بود … اگر بخوام وقتی mPage به طور مثال برابر با ۳ هست یه لایه ی بخصوص رو نمایش بده باید از چه کدی استقاده کنم؟
    باتشکر

  • سمیع گفت:

    ببخشید یه سوال
    ایا میشه دیتابیس رو در خود حافظه داخلی کپی کرد جوری که تو اندروید ۶ هم مشکل نداشته باشه
    اخه اینجوری هر برنامه که مینویسیم تو اندروید شش به مشکل بر میخوره.
    اگه راهی هست ممنون میشم توضیح بدید

  • علی گفت:

    سلام وققتون بخیر

    من یه مشکلی دارم و هر کاری رو که انجام میدم درست نمیشه لطفا راهنمایی کنید
    اینم عکس ارور :
    http://s8.picofile.com/file/8269366892/Capture.PNG
    آرایه tabTitle رو تعریف کردم ولی موقعی که این کد رو می نویسم ارور میده طبق فیلم شما باید درست میشد ولی واسه من اینطوریه

    return tabTitle(positon);

    لطفا هر کی که بلده راهنماییم کنه
    مرسی

  • MAHDI گفت:

    با سلام ,سوالم رو دوباره میپرسم لطفا جواب بدید ,در قسمت پنجم آموزش بعد ازتعریف کردن تابع کلیک, روی image viewوقتی میخوام برنامه رو توی شبیه ساز اجرا کنم با خطای زیر مواجه میشم
    android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class android.support.design.widget.NavigationView
    این هم navigation_activity_mainکه اونرو بطور کامل کپی کردم

    ۱-android.support.v4.widget.DrawerLayout 2.xmlns:android=”http://schemas.android.com/apk/res/android”
    ۳- android:layout_width=”match_parent”
    ۴-android:layout_height=”match_parent”
    ۵-xmlns:app=”http://schemas.android.com/apk/res-auto”
    ۶-android:id=”@+id/navigation_drawer”
    ۷-include layout=”@layout/activity_main”
    ۸-android.support.design.widget.NavigationView
    ۹- android:layout_width=”wrap_content”
    ۱۰-android:layout_height=”match_parent”
    ۱۱-android:layout_gravity=”right”
    ۱۲-android:id=”@+id/navigation_view”
    ۱۳-android:layoutDirection=”rtl”
    ۱۴-app:headerLayout=”@layout/navigation_header”
    ۱۵app:menu=”@menu/navigation_item”
    ۱۶-android.support.design.widget.NavigationView
    ۱۷- .android.support.v4.widget.DrawerLayout

  • amir گفت:

    با سلام من تو قسمت cradview sqlite مشکل دارم دقیقا طبق کارهای شما پیشرفتم ولی محل دیتابیس رو پیدا نمیکنه ولی وقتی داخل گوشیو میگردم پیدا میکنم مشکل از کجاست؟
    http://s8.picofile.com/file/8269866268/1.png
    http://s9.picofile.com/file/8269866284/2.png
    http://s9.picofile.com/file/8269866326/3.png

  • وحید گفت:

    با عرض سلام خدمت شما استاد گرامی جناب محمد اقای بابازده

    یه خواهش ازتون داشتم این قسمت search رو آموزشش رو قرار بدین لطفا من هرکاری که کردم موفق نشدم درستش کنم لطفا این آموزشش رو قرار بدین تا مشکل من و خیلی از دوستان حل بشه ممنونم ازتون

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

  • صادق گفت:

    سلام من نتونستم از تخفیف ۲۵% استفاده کنم میشه دوباره اعمال بشه تا بتونم خرید کنم تمام آموزشهای اندروید استودیو رو میخوام به صورت یک جا. تخفیف رو میشه دوباره اعمال کنید؟
    ممنونم

  • سمیع گفت:

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
    try {
    return super.dispatchTouchEvent(ev);
    } catch (Exception e) {
    return false;
    }
    }

    این کد رو از تو نت پیدا کردم واسه منوی کشویی با این خیلی کمتر فورس کلوز میشه واسه من

  • محمد گفت:

    با عرض سلام خدمت آقای بابازاده عزیز…
    مهندس من تا جلسه ۷ پیش رفتم، مشکلی که هست الان برنامرو تو تبلتم اجرا میکنم و موقعی که تبلت رو از حالت افقی به عمودی میبرم و یا بر عکس، در هر چرخش تعداد کارد های من توی هر صفحه دو برابر میشن…
    میخواستم بدونم مشکل از کجاست

  • محمد گفت:

    با سلام دوباره خدمت آقای بابا زاده…
    مشکلی مطرح کردم در مورد اجرای برنامه در تبلتم که با هر بار rotat تبلتم، تعداد card ها دو برابر میشن…
    خواستم خدمتتون عرض کنم که فهمیدم مشکل از کجاست ولی خوب راه حلشو هنوز پیدا نکردم…
    مشکل در قسمت getItemCount مربوط به fragment کارد ویو هاست… که طبق دستور شما
    ;()return ActivityMain.myname.size انجام شده.
    ولی خوب زمانی الان فهمیدم مشکل از همین قسمته اخه زمانی که به یک عدد ثابت return می کنم مشکل حل میشه.
    ممنون میشم راهنمایی بفرمایین…

  • هادی خضرپور گفت:

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

  • علیرضا گفت:

    با سلام
    اموزشتون حیلی حوبه
    من به یه مشکل برخوردم متوده
    public CharSequence getpagetitles(int position){
    return tabtitles[position];
    }
    override نمیشه و مشکل ایجاد میکنه من تمامه کار هایی که گفتین انجام دادم ولی این یدونه متود اورراید نمیشه و باعث میشه تا نوشته های تب تایتلس هام نیاد لطفااا رسیدگی کنید

  • علیرضا گفت:

    و یه عروره دیگه هم دارم اینه لطفا بهش رسیدگی کنید

    ممنون از سایت خوبتون

  • محمد گفت:

    سلام چیکار کنیم که وقتی جستجو کردیم خواستیم رو card view مورد نظر کلیک کنیم نره id شماره یک رو بخونه؟ شناسایی کنه تو جستجو که این id برا ۱۰ بود مثلا همون محتوا رو براش بیاره؟

  • Ayda گفت:

    سلام ، وقت بخیر
    ببخشید چه جوری میتونم رنگ آیکن و تکست ایتم انتخاب شده در navigation drawer رو تغییر بدم؟
    یکی از راه های رسیدن به جواب فکر میکنم اینه که در متدی مشابه onclick عکس و رنگ ایتم انتخاب شده رو تغییر بدم … اما نمی دونم دقیقا چه جوری و دقیقا با چه متدی؟

  • حامد گفت:

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

    http://uupload.ir/files/7c8r_err.png

    لطفا راهنماییم کنید .

  • سعید گفت:

    سلام ودرود اول از همه بابت همه چیز ازتون تشکر میکنم چون واقعا گل کاشتین خدا پشت و پناهتون باشه

    جناب من تا ویدیو ۷ همه مراحل رو رفتم و همه چیز اوکی فقط یه مشکل در دیتا بیس برام پیش اومده که فایلی که در دیتا بیس میذارم در پوشه ای که در داخل حافظه گوشی ساخته میشه وجود نداره یعنی فقط پوشه خالی ساخته میشه و نمیدونم مشکل از کجاست لطفا راهنماییم کنید این هم کدهام

    package mainPage;

    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Environment;
    import android.support.design.widget.NavigationView;
    import android.support.design.widget.TabLayout;
    import android.support.v4.view.ViewPager;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Gravity;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.ImageView;

    import com.example.asus.esfandune_2.R;

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;

    public class ActivityMain extends AppCompatActivity {

    public static Context context;

    DrawerLayout drawerLayout;
    NavigationView navigationView;
    ImageView hamberger;
    SQLiteDatabase database;
    String destpath;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.navigation_activity_main);

    context = getApplicationContext();

    setTabOption();

    drawerLayout = (DrawerLayout) findViewById(R.id.navigation_drawer);

    navigationView = (NavigationView) findViewById(R.id.navigation_view);

    //تعریف منو

    hamberger = (ImageView) findViewById(R.id.hamberger);

    hamberger.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    drawerLayout.openDrawer(Gravity.RIGHT);
    }
    });

    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {

    int id = item.getItemId();
    if (id == R.id.setting) {

    Log.i(“Log”, “Hello”);
    }
    return true;
    }
    });

    try {
    destpath = Environment.getExternalStorageDirectory().getAbsolutePath() + “/book_database/”;
    //Log.i(“LOG”, “destination path : ” + destpath);
    File file = new File(destpath);
    if (!file.exists()) {
    file.mkdir();
    file.createNewFile();
    copyDB(getBaseContext().getAssets().open(“book.sqlite”), new FileOutputStream(destpath + “/book.sqlite”));
    }
    }
    catch (FileNotFoundException e) {
    e.printStackTrace();

    } catch (IOException e) {
    e.printStackTrace();
    }

    }

    // اگر کد زیر را ننویسیم وقتی می رویم روی منو اگر دکمه ی بک رو بزنیم برنامه بسته میشود و همچنین باعث میشود تا منو با کشیدن انگشت باز و بسته شود!
    @Override
    public void onBackPressed() {
    if (drawerLayout.isDrawerOpen(Gravity.RIGHT)) {
    drawerLayout.closeDrawer(Gravity.RIGHT);
    } else {
    onBackPressed();
    }
    }

    //دیتا بیس

    private void copyDB(InputStream inputStream, OutputStream outputStream) throws IOException {
    byte[] buffer = new byte[1024];
    int length;

    while ((length = inputStream.read(buffer)) > 0) {
    outputStream.write(buffer, 0, length);
    }

    inputStream.close();
    outputStream.close();

    }

    //

    private void setTabOption() {

    ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    viewPager.setAdapter(new AdabterFragment(getSupportFragmentManager()));
    TabLayout tabStrip = (TabLayout) findViewById(R.id.tabs);
    tabStrip.setupWithViewPager(viewPager);

    }
    }

  • Ayda گفت:

    سلام ، ببخشید امکانش هست آموزش banner و یا یک نمونه سورسشو رو در سایت قرار بدید ؟(Image slideshow with circle indicator )
    سپاس از شما

  • عرفان گفت:

    جناب بابا زاده سلام
    من نمی تونم کتابخونه android.support:design:23.2.0 رو از داخل اندروید استودیو به طور خودکار دانلود کنم باید چیکار کنم ؟

  • عبدالله گفت:

    با سلام بنده تا حالا با اندروید استودیو برنامه نویسی نکردم و اولین باره میخوام بیام سمت اندروید استودیو قبلا با بیسیک فور اندروید کار کردم.الان با این آموزشا میتونم یه همچین برنامه ای که تو عکس هست رو بسازم یا اول برم آموزش مقدماتی رو ببینم

  • Lost گفت:

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

    • abbasalim گفت:

      سلام. دسته بندی تو در تو
      یه ستون parent_id داخل دیتابیستون بزارید. حالا پرنت آی دی دسته بندی اصلی رو بدید -۱ و پرنت آی دی دسته بندی های داخلشون رو آی دی دسته بندی اصلیشون بهش بدید .
      داخل برنامه هم وقتی رو دسته بندی کلیک شد چک کنید اگه موضوعی هست parent_id یش برابر آی دی موضوع کلیک شده باشه اونا رو نشون میدی ولی اگه نیست مطلب مربوط به اون موضوع رو نشون می دی (امیدوارم سر نخی گرفته باشید)

      • حامد گفت:

        من دسترسی ها رو صادر کردم ولی باز رو گوشیم اجرا نشد !!

        به نظرم مشکل از اینه که دیتابیس باید رو حافظه sd کارت کپی بشه ولی گوشی من کارت حافظه نداره و فورس کلوس میده !
        چطوری میتونم دیتابیس رو بجا sd کارت روی internal storage کپی کنم ؟

  • اسماعیل گفت:

    دوستان عزیز سلام در راجب مشکلی که دیده بودم بعضی از شما عزیزان دارین در رابطه با اجرا نشدن برنامه روی اندروید ۶ من این آموزش بسیار ساده رو پیدا کردم گفتم اینجا بگذارم تا شما عزیزان هم استفاده کنید با این آموزش شما از طریق خود گوشی به برانامه اجازه اجرا شدن رو میدین و دیگ نیازی به کدنویسی نیست
    البته راه بهتر کد نویسی هست اما برای دوستانی که به خاطر این مسیله به مشکل برخوردن و هنوز کدنویسیش رو بلد نیستن میتونه راه گشا باشه من استفاده کردم و برام مفید بود امیدوارم برای شما عزیزان هم مفید باشه لینک این اموزش رو در همین جا میگذارم موفق باشید و در پناه حق

    http://writeage.com/%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A7%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D9%86%E2%80%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-6.html#.WFKw5C196M9

  • مهران گفت:

    سلام
    #سوال
    من طبق آموزش ها پیش رفتم ، تو emulator اجرا میکنم مشکلی نیست رو گوشی خودم ( A7 android 6 ) که اجرا میکنم این ارور رو میده : http://uupload.ir/files/hw80_errrr.png
    لطفا بگین مشکل از کجاست چند روزه درگیرشم .

    ممنون

  • نوید گفت:

    با سلام،
    من دیشب این بسته رو خرید کردم ولی پارت ۱۰ مشکل داره و corrupt بود
    اگه ممکنه لینک سالم رو برام ارسال کنین ممنون

  • morteza.y گفت:

    با سلام و خسته نباشید فراوان.
    راستش در ویدیو ۶ یه مشکلی دارم و اونم اینه که پوشه book-database رو در Sd card شبیه ساز نمیسازه.
    بارها و بارها کدها رو بررسی کردم ولی متوجه مشکلش نشدم. لطفا راهنمایی کنید.
    در کامنتهای قبلی، این مشکل و یکی از دوستان هم مطرح کرده بودن.
    لطفا راهنمایی کنید…
    اینم تصویر پیامی که دیده میشه:
    http://uupload.ir/files/l98w_1.png

  • Salar گفت:

    سلام
    میشه با جاوا ، کیبورد هم نوشت؟؟
    اگه میشه آموزشش رو قرابدید لطفا

  • سجاد منصوری گفت:

    با سلام خدمت استاد ارجمند جناب مهندس بابازاده عزیز
    اگر امکانش هست لینک دیتابیس کتاب اندرویدی رو برای ما بذارید
    من سورس فیلم رو خریداری کردم اما نیازی به سورس کامل ندارم لطفا آدرس دیتابیس اندرویدی که در فیلم آموزشی بیان کردید که داخل خود سایت اسفندونه هست رو بذارید.
    با تشکر

  • عرفان گفت:

    سلام
    این نرم افزاری که نوشتید هنوز از مشکلات جدی رنج میبره
    از مهم ترین اونها نصب نشدن توی اندروید ۶ هست
    خواهشمندم پرمیشن هایی این برنامه نیاز داره در قالب یک لیست همینجا بگید تا بتونیم اون ها رو توی سورس وارد کنیم و بتونیم نصب کنیم
    خیلی نیاز دارم برای نصب این برنامه روی اندروید ۶
    با تشکر

  • ali گفت:

    سلام چجوری میتونم ی اپ داشته باشم که تو تمام گوشی ها با سایز های مختلف یکسان دیده شه ؟

  • هدی معمارزاده گفت:

    سلام
    در مورد permission در ویدیو ۶ من از طریق کد زیر مشکل رو تقریبا حل کردم ولی دیتابیس با حجم ۰ رایت میشه
    میشه بفرمایید مشکل از کجا می تونه باشه؟

    public boolean isStoragePermissionGranted() {
    if (Build.VERSION.SDK_INT >= 23) {
    if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
    == PackageManager.PERMISSION_GRANTED) {
    Log.v(“Permission”,”Permission is granted”);
    return true;
    } else {

    Log.v(“Permission”,”Permission is revoked”);
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
    Log.v(“Permission”,”Permission is revoked1″);
    return false;
    }
    }
    else { //permission is automatically granted on sdk<23 upon installation
    Log.v("Permission","Permission is granted");
    return true;
    }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if(grantResults[0]== PackageManager.PERMISSION_GRANTED){
    Log.v("Permission","Permission: "+permissions[0]+ "was "+grantResults[0]);
    //resume tasks needing this permission
    }
    }

  • Raha گفت:

    سلام
    لطفا مدت زمان هر ویئو رو هم مشخص کنید
    ممنون

  • Raha گفت:

    همچنین توی کلاس AdapterFragment هم در متد override شده ی () getItem به دستور return ایراد می گیره:
    return PageFragment.newInstance(position)

    Alt+Enter رو که می زنم این دوگزینه میاد:
    ….Make “getItem()”return
    Add static import for package_name.mainPage.PageFragment.newInstance

    ایمپورت ها درسته دیگه نمیدونم باید چی کارش کنم؟

  • Raha گفت:

    اگر سریع تر کامنت ها رو بررسی نمایید ممنون میشیم
    سرعت خیلی پایینه

  • احسان گفت:

    آقای بابازاده الان دوماه میگذره ما هنوز منتظر اموزش تکمیلی صفحه جستجو هستیم.توروخدا ی وقتی برا این موضوع بذارین.

  • محمد گفت:

    سلام خداوند متعال زمینه موفقیت همه تون رو فراهم کنه
    آقای بابا زاده موفق و پیروز باشید
    نمیدونم کسی هست کمکم کنه یه آموزش ساخت کتاب اندرویدی با سی شارپ گیر بیارم
    ممنونتون میشم

  • سارا گفت:

    با سلام
    چطور میشه در cardview از ripple)highlight( ( در زمان انتخاب یکی از کارد ویو ها ) استفتده کرد؟؟؟؟
    شما در برنامه اصلی استفاده کردید ولی اموزش اونو نذاشتید
    از روش های مختلفی استفاده کردم با style هم موفق به انجام این کار نشدم

  • دهقان گفت:

    با سلام و درود
    من در لیست علاقه مندیها به مشکل برخوردم لطفا راهنمایی بفرمایید.
    من پروژه کاملا را مطابق ویدیو ۱۰ انجام دادم ولی وقتی صفحه favorite خالی است و من آیتمی را لایک می کنم در بخش favorite نشان داده نمی شود مگر اینکه پروژه را یک بار دیر باز و بسته کنم .
    ولی اگر صفحه favorite پر باشد و من آیتمی را لایک کنم آن را در صفحه علاقه مندیها نشان می دهد.

  • محسن گفت:

    با سلام و وقت بخیر
    ببخشید یک سوال داشتم . من با مای اسکیول کار کردم . اما شما در این دوره از sqlite استفاده می کنید . میشه بفرمایید چرا از mysql استفاده نکرده اید ؟
    کلن چه وقتهایی در برنامه های اندروید از mysql استفاده می کنند ؟ این دو تا فرقشون در چیه ؟
    با تشکر

    • abbasalim گفت:

      سلام. دیتابیس sqlite یه دیتابیس سبک هست که داخل برنامه های گوشی ازش استفاده میشه. نمیشه از mysql داخل اپ اندرویدی استفاده کنید و دیتابیس سنگینی هست

  • جواد اشکش گفت:

    سلام
    پوشه assets رو خودتون ساختید؟ چطوری؟

  • Neda گفت:

    سلام
    از دوستانی که که این پکیج رو خریدن لطفا تو تلگرام بهم پ م بدن ، چند تا سوال دارم درمورد این پکیج.
    متشکرم.

  • جمال گفت:

    سلام
    من لایبری رو توی فایل gradle‌اضافه کردم اما دانلودش نمی کنه و پیغام زیر رو میده. اینرنتم هم وصله.
    All packages are not available for download! The following packages are not available
    :- Package id platforms;android-23

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

  • shiva گفت:

    سلام ضمن تشکر از آموزش خوبتون
    من آموزش ها را به ترتیب انجام دادم ولی در آموزش هفتم بعد از اینکه کوئری می نویسم تا جدول sqllite را باز کنه خطا میده. لطفا کمکم کنید.
    دو خطی که ارور میگیره کاملا همون کدیه ک در آموزش ها نوشتید
    database = SQLiteDatabase.openOrCreateDatabase(destPath + "/book_database", null); (ActivityMain.java:119)
    selectBefore(); (ActivityMain.java:85)

  • shiva گفت:

    سلام چند روز پیش سوال پرسیدم ولی هنوز میزنه در حال بررسی .
    من تو باز کردن sqlite مشکل دارم لطفا فایل sqlite را هم بزارید تا بفمم مشکل از دیتا بیس خودمه یا نه. یا اینکه برام ایمیل کنید لطفااااااااااااااااااااااا
    مرسی

  • no name گفت:

    سلام
    آموزش ها واقعا کاربردی بود. اما یه جایی که دیتا بیس ها رو لود کردیم ، من نتونستم اطلاعات دیتابیس رو توی کارد ویو که در fragment ها است لود کنم .لطفا بگید چجوری اینکار رو بکنم نمونه عکس زیر هست:
    http://s4.img7.ir/34fW9.png

    • سلام و درود
      اگر طبق ویدیو پیش بروید نباید مشکل خاصی وجود داشته باشد
      برای اینکه ببینید چه پارامترهایی در کد داره جابجا میشه در هر مرحله Log بگیرید و پارامترها را چک کنید تا دلیل خاصی بودن card ها مشخص شود.

  • shayan گفت:

    سلام
    من توی قسمت دوم آموزش توی کلاس AdabterFragment برای get item در قسمت return وقتی که position +1 رو میدم ارور میده و نمی تونم برنامه رو اجرا کنم دوتا اسکرین گرفتم. از خطا های ایجاد شده :

    http://s9.picofile.com/file/8282937026/Screenshot_72_.png
    http://s6.picofile.com/file/8282937050/Screenshot_73_.png

    چکار کنم ؟

  • ابوالفضل گفت:

    لینک دانلود بخش ۹ مشکل دارد

  • mehran-faraji گفت:

    سلام ببخشید مزاحم شدم من توی کلاس AdapterFav به مشکل برخوردم میشه لطفا این کلاس روبه ایمیلم بفرستید

  • ali گفت:

    سلام . ببخشید من تو برنامم دیتابیس رو تو حافظه گوشی تو ی پوشه ذخیره میکنم ولی خب این جوری راحت به دیتابیس دسترسی دارن و راحت میتونن برش دارن و استفاده کنن ،،،، میخوام بدونم کجا ذخیره کنم که دیده نشه … شما تو حافظه کپی کردید که این قابل دسترسیه !! راهه دیگه ای نیست ؟

  • mehran-faraji گفت:

    این چه وضع پشتیبانیه لطفا کلاس AdapterFav رو بفرستید

  • مسیح گفت:

    سلام
    چطور میتونم به متن بیشتر نرم افزار الکترونیکی عکس اضافه کنم … یعنی روی هر گل که کلیک میکنم زیر متن بیشتر یه عکس مخصوص نمایش داده بشه
    خواهش میکنم کمک کنید

    • abbasalim گفت:

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

  • مسیح گفت:

    سلام میشه بیشتر توضیح بدین خیلی ممنون میشم

  • سینا گفت:

    سلام
    من آموزش را خریداری کردم لطفا فایل دیتابیس را آپلود کنید

  • ایمان گفت:

    سلام، ممنون از آموزشتون، من ویندوزم اکسپی هست و رم هم یک گیگ آیا میتونم این آموزش رو به طور کامل روی سیستمم عملی انجام بدم یا خیر، میخوام بخرم ولی مترسم روی سیستمم جواب نده! میشه لطفا جواب رو واسم ایمیل بفرمایید، مرسی

  • ابوالفضل گفت:

    سلام من اموزشاتون رو خذیدم اما متاسفانه نمیتونم
    compile ‘andrid:desing…..’ ro
    پیاده سازی کنم لطفا بگید این چطوری روی اندروید استودیو من نصب یا افزوده میشه؟ ایا افلاین این کتابخونه هست تا بتونم بصورت دستی وارد کنم؟
    ممنونم

  • nastaran گفت:

    سلام. چطور می تونم وقتی وارد یه صفحه میشم که دارای تب هست
    اول از همه تب مورد نظرم رو نشون بده؟ مثلا اول تب دوم رو نشون بده.

  • علیرضا گفت:

    سلام.ایا میشه به تنظیمات چند فونت اضافه کرد؟

  • علیرضا گفت:

    با سلام ارور میده موقع کامپایل کردن.چی کنم؟
    private void setTabOption(){
    ViewPager viewPager=(ViewPager) findViewById(R.id.viewpager);
    viewPager.setAdapter(new AdapterFragment(getSupportFragmentManager()));
    TabLayout tabStrip=(TabLayout) findViewById(R.id.tabs);

  • علیرضا گفت:

    سلام وقتی من view pagerرو ساختم و روی اندروید اجرا کردم از برنامه بیرون آمد چه کنم؟ممنون میشم سریعتر جواب بدید.

  • امید گفت:

    سلام اقای بابازاده
    من تو قسمت هفتم ک اطلاعات رو از پایگاه داده میخونه مشکل دارم این ارور رومیده ،
    میشه راهنمایی کنید مرسی

    Failed to open database ‘/storage/emulated/0/Programmer/Programmer.sqlite’.
    android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database

    FATAL EXCEPTION: main
    Process: website.programmer.com.programmer, PID: 3163
    java.lang.RuntimeException: Unable to start activity ComponentInfo{website.programmer.com.programmer/website.programmer.com.programmer.MainPage.ActivityMain}: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database

  • ابوالفضل گفت:

    لطفا یه برنامه یا روشی برای تغییر آی پی بذارید من اموزش ها رو خریدم ولی نمیتونم از این مشکلم جلوتر برم

  • یونس گفت:

    سلام این اموزشی که تو سایتتون گذاشتین داخل اش کی استور و فونت های که بازار قبول می کنه و برنامه چه سبکی باشه که مورد قبول مارکت های مثله بازار باشه هم هست؟

  • علی گفت:

    سلام من کار با دیتابیس رو بلد نیستم با چه برنامه ای می تونم متن های خودم در دیتابیسی که قرار دادید بزارم.

  • اسماعیل گفت:

    سلام وقت بخیر وسط متن ها از عکس و یا صوت و فیلم استفاده شده؟

  • مسیح گفت:

    سلام
    برای اینکه زیر متن بیشتر بتونم عکس مربوطه اضافع کنم یه ستون به دیتا بیس اضافه کردم و بلد نیستم چیکار کنم دیگه
    این error رو میده
    I/art: Background partial concurrent mark sweep GC freed 546(59KB) AllocSpace objects, 0(0B) LOS objects, 24% free, 3MB/4MB, paused 8.824ms total 21.396ms
    E/CursorWindow: Failed to read row 0, column -1 from a CursorWindow which has 1 rows, 7 columns.
    D/AndroidRuntime: Shutting down VM
    E/AndroidRuntime: FATAL EXCEPTION: main

  • ayyub گفت:

    سلام من برنامه رو تا آموزش سوم نوشتم هبچ اروری نمیده اندروید استدیو ، یعنی مطابق آموزش نوشتم ولی موقعی که ران میکنم ی لحظه برنامه باز میشه و بسته میشه همین میخاستم ببینم مشکلش چی میتونه باشه

  • علی گفت:

    سلام
    وقتی تو قسمت ۷ متد selectFlower رو نوشتم و ازش log گرفتم ارور database disk image is malformed رو داد فکر میکنم دیتابیس ناقص هست.
    من با برنامه navicat هم میخوام دیتابیس رو باز کنم همین ارور رو میده
    لطفا راهنمایی کنید.

  • Mojtaba گفت:

    سلام
    مهندس بابازاده من آموزش کتاب رو گرفتم و تمام مراحل رو مطابق شما تا قسمت ۱۱جلو بردم و در امولاتور اجرا میشود ولی وقتی برنامه را تو گوشی میریزم برنامه کرش میکنه میخواستم ببینم امکانش هست کمک کنید تا بتونم دلیلشو بدونم چون خیلی به رفع این خطا نیاز دارم

  • علی گفت:

    سلام
    من آموزش هارو تا آخر دیدم و کتاب رو ساختم اما تو قسمت علاقه مندی هنوز مشکل برطرف نشد. وقتی علاقه مندی کلا خالی هست و چیزی رو علاقه می کنم چیزی نشون نمیده اما وقتی خارج میشم از برنامه و دوباره واردش میشم درست میشه.
    کد زیر رو هم تو pageFragment اظافه کردم:
    @Override
    public void onResume() {
    super.onResume();
    if (adapterFav != null){
    adapterFav.notifyDataSetChanged();
    }

    }

    ممنون میشم رلهنمایی بفرمایید.

  • علی گفت:

    سلام
    ممنون که به جای جواب دادن سوال من رو حذف کردین والا حرومه این پولی که گرفتین از ما بابت این آموزش که پر از اشکاله و اصلا کامل نیست بر خلاف تیتر و توضیحاتی که زدین
    من که راضی نیستم ازتون این جور پول ها خوردن نداره

  • plant گفت:

    سلام
    چطوری دیتابیس ساخته شده در اس دی کارد رو آپدیت کنم؟ یعنی دیتابیس قدیمی رو حذف و دیتابیس جدید رو جایگزین کنم؟ با عوض کردن نام دیتابیس هم force stop میده.

  • اسماعیل گفت:

    سلام موقع اجرای برنامه این ارور تو لاگ ظاهر میشه ومیگه
    تو اکتیویتی context.getApplicationContext();
    این خط نال برمیگردونه
    کل ارور لاگ

    ۰۳-۱۵ ۱۴:۵۰:۰۸٫۳۰۱ ۲۸۳۴۲-۲۸۳۴۲/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.maskme4, PID: 28342
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.maskme4/com.example.maskme4.ActivityMain}: java.lang.NullPointerException
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
    at android.app.ActivityThread.access$800(ActivityThread.java:139)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:149)
    at android.app.ActivityThread.main(ActivityThread.java:5257)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
    at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.NullPointerException
    at com.example.maskme4.ActivityMain.onCreate(ActivityMain.java:44)
    at android.app.Activity.performCreate(Activity.java:5411)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396) 
    at android.app.ActivityThread.access$800(ActivityThread.java:139) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:149) 
    at android.app.ActivityThread.main(ActivityThread.java:5257) 
    at java.lang.reflect.Method.invokeNative(Native Method) 

  • امیرحسین گفت:

    سلام من تو بخش کپی کردن database مشکل دارم تمام کدها همونه که شما نوشتید ولی اصلا نمیتونم database رو تو مانیتور پیدا کنم

  • ali گفت:

    سلام چرا فایل دیتابیس باز نمیشود

نظر خود را بیان کنید

*

code

بسته آموزشی زمستانه فارسی اندروید
تخفیف نورورزی