a.khosroabadi

توسعه دهنده حرفه ای اندروید
  • تعداد ارسال ها

    84
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    13

a.khosroabadi last won the day on مارچ 9

a.khosroabadi had the most liked content!

اعتبار در انجمن

42 Excellent

3 دنبال کننده

درباره a.khosroabadi

  • درجه
    توسعه دهنده فعال
  1. سلام تو متد onCreateView تو فرگمنت هاتون قبل از کد زیر AdapterCardView adapterCardView=new AdapterCardView(getContext(),arrayList); اینو بزارین ببینین چی میشه arrayList.clear();
  2. ببینید وقتی شما دارین برنامه برای اندروید مینویسین چون ورژن اندروید هر بار میره بالاتر گوگل امکانات جدیدو تو لایبراری های جداگونه قرار میده و شما برای استفاده از این امکانات باید این لایبراری هارو به پروژه خودتون اضافه کنید. الان این خط کدی که داره ایراد میگیره مربوط به theme های متریال هستش که تو لایبراری های جانبی هستش.برای اینکه شم بتونید از این امکانات استفاده کنید باید این لایبراری هارو به پروژتون اضافه کنید. الان خطایی که دارین میگیرین دلیلش این هستش که این لایبراری ها به پروژه شما اضافه نشده.
  3. سلام دوست عزیز @style/Theme.AppCompat.Light.DarkActionBar این استایلو پیدا نمیکنه که مربوط به لایبراری AppCompat هستش و برای اضافه کردنش باید کد زیر به gradle اضافه کنید dependencies { compile 'com.android.support:appcompat-v7:+' } و به جای + انتها ورژنش بزارین که بستگی به sdk های شما داره.
  4. سلام شما احتیاجی نیست دانلود کنید. اگه وی پی ان دارین نصب کنید و وقتی سینک کنید gradle دانلود میکنه براتون.
  5. سلام دوست عزیز ببخشید با تاخیر جواب میدم اگه ممکنه کد اکتیویتی که این fragment ها (تب ها) رو توش لود میکنید و همینطور کد AdapterCardView بزارین.
  6. سلام دوست عزیز آموزش های udemy خوب هستند. برای برنامه نویسی اندروید باید زبان جاوا رو هم بلد باشین تا حدودی که تو این ویدئو مقدماتش رو آموزش میده. میتونید از کتاب ها هم استفاده کنید. در صورتی که زبانتون خیلی قوی نیست به نظر با فارسی شروع کنید. البته میتونید از ویدئو های udacity هم استفاده کنید که اگه انلاین ببینید زیرنویس هم داره (البته انگلیسی) و میتونید هم دانلود کنید ویدئو ها به همراه زیرنویسشونو به نظرم برای یاد گیری اصولی اندروید باید جاوا رو در حد مقدماتی به عنوان پیش نیاز یاد بگیرین
  7. سلام دوست عزیز احتیاجی به متغییر نیست.دلیل این اتفاق این هستش که زمانی که شما بین تب ها جا به جا میشین فرگمنت ها به صورت کامل از بین نمیرن. برای این که شما جلو این تکرار رو بگیرین باید تو متد onCreateView یه شرط بزارین قبل از ساخت adapter تا چک کنید ببینید ازین فرگمنت دیتایی ساخته شده یا نه به این صورت تغییر بدین کدتونو if (savedInstanceState == null){ adapterCardView = new AdapterCardView(getActivity(),arrayList); loadDatabase(); }
  8. خداروشکر.خواهش میکنم کاری نکردم که.
  9. شما این کارو باید انجام بدین fina Recycler_View_Adapter mAdapter = new Recycler_View_Adapter(data1); rc.setAdapter(mAdaper); و تو متد onClick هم به این صورت عمل کنید mAdapter.add(data);
  10. مشکل پیدا شد شما داری در ابتدا یه adabter میسازی و به recycler View ست میکنی تو این خط rc.setAdapter(new Recycler_View_Adapter(data1)); و تو متد onClick دوباره دارین یک adabter دیگه میسازین و متد add رو صدا میزنید؟ خوب مشخصه این یه ابجکت جدید هستش و شما به اون اضافه میکنید. شما باید متد add همون adaptere اولیو صدا بزنید.
  11. سلام فکر نمیکنم مشکلی باشه چون من خودم این کارو انجام میدم حتی لیستمو کلا با این روش پر میکنم. میشه قطعه کد اداپتر و اکتیویتی بزاری
  12. ببینید متد notifyAll که تو کلاس های جاوا هستش برای این نیست که شما به main thread بگید که ui رو اپدیت کنه چون تعریف و کارایش متفاوت هست بعضی زمانها شما همه thread هایی که دارین تو حالت wait نگه میدارین تا یه کاری توسط یه thread انجام بشه.حالا برای اینکه این theard های wait شده به اصطلاح بیدار کنید از متد notifyAll استفاده میکنید.ولی اینجا ما هیچ thread نداریم که wait باشه. شما باید به خود adapter اطلاع بدین که یک ایتم به لیستتون اضافه شده که اینکارو میتونید به وسیله متد notifyItemInserted() انجام بدین این متد یه ورودی میگیره که میشه ایندکس ایتم جدید شما تو لیست. و این قسمت هم productBeanList.size() - 1 مکان ایتم جدید رو تو ادپتر مشخص میکنه یعنی میگم به انتهای لیست اضافه کنه.اگه مثلا 0 بزارین ایتم های جدید اول میاره. حالا شما باید یه متد add مثل این تو کلاس adapter که ساختین بزارین ورودیش میشه object شما و اونو به لیست اضافه میکنه و به متد بالا هم به adapter اطلاع میدید که یک ایتم جدید اضافه شده و باید خودشو اپدیت کنه. حالا شما به جای اینکه یک ایتم به لیستتون اضافه کنید میاید این متد از adapter صدا میزنید و ابجکت رو بهش پاس میدین.
  13. مشکل تو این متد notifyAll هستش. چیزی که من از قطعه کد های شما متوجه شدم اینه که دارین تو اکتیویتی یه ایتم به لیستتون اضافه میکنید درسته؟ برای اینکار میتونستین دوتا کار انجام بدین اول اینکه یه متد برای اضافه کردن ایتم تو اداپترتون میزاشتین و به لیستتون اضافه میکردین به این صورت public void add(ProductBean.Product productBean){ productBeanList.add(productBean); notifyItemInserted(productBeanList.size() - 1); } و دیگه اینجوری تو اکتیویتی به لیست اضافه نمیکردین احتیاجی هم به متد notifyAll نیستش.
  14. سلام دوست عزیز تو کلاس MainPage احتمالا یک متد onClick دارین ؟ میشه این قسمتو هم بزارین