PDA

View Full Version : راه حل استفاده از تعداد زیادی اکتیویتی



esmail3309
شنبه 22 شهریور 1393, 07:22 صبح
سلام دوستان
من توی برنامم مجبور شدم از تعداد زیادی اکتیویتی و در نتیجه لیوت استفاده کنم که روی هم رفته حدود 200 تا میشن!!

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

وجود تعداد بالایی اکتیویتی و لیوت در یک برنامه اشکالی داره؟یعنی باعث مشکلی از قبیل کرش force close و.. نمیشه؟

omid.n1990
شنبه 22 شهریور 1393, 10:12 صبح
خب این تعداد به نظرم اصلا منطقی نیست، خفن ترین برنامه ها و برنامه هایی که صدها امکانات هم دارم ندیدم این تعداد اکتیویتی داشته باشن.
بسته به کارتون داره ولی اگر اصولی طراحی کنید بعید میدونم این مقدار مورد نیاز شما باشه. مثلا شما واقعا 200 مورد لایوت با شکلی متفاوت دارید؟؟؟ یا اینکه عموما شبیه به هم هستن و فقط یک قسمت کوچیکیش متفاوته و مثلا هر کدوم یکی دوتا ویو بیشتر داره یا مقدار متفاوتی تو هر کدوم گذاشتید.

esmail3309
شنبه 22 شهریور 1393, 10:26 صبح
شبیه به هم هستن

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

توی هر لیوت چند تصویر، متن و وب ویو قرار دادم

saeed_g21
شنبه 22 شهریور 1393, 11:40 صبح
من خودم از یک اکتیویتی حداقل 3 بار با دستورات مختلف استفاده می کنم همچنین از لایوت!!!

در لایوت میام ابزارهارو میچینم بعد بستگه به نیاز Visible می کنم و استفاده می کنم

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

omid.n1990
شنبه 22 شهریور 1393, 14:04 عصر
اگر این طور باشه کسی که هزار مطلب آموزشی داشته باشه هزار اکتیویتی میخواد؟ برنامه پیامک و شعر و ... چطور؟ چندصدهزار اکتیویتی و لایوت میخوان به نظرتون؟؟؟؟؟؟؟؟
چه حالی داشته اید دویست تا درست کردید:)
شما فقط باید محتوا رو با کد عوض کنید و نیازی نیست که برای هر مطلب یک اکتیویتی و یک لایوت بذارید. مثلا تنها و تنها یک لایوت و اکتیویوتی برای برنامه اتون کافیه! + چهارپنج لایوت دیگه برای لیست و منو، درباره ما، جستجو و.... .
باید دید منبع این آموزشتون چی هست؟ دیتابیس؟فایل؟ صفحه وب آفلاین؟ صفحه وب آنلاین؟
مثلا اگر برنامه اتون فقط یک تکس و یک ایمیج داره و منبعتون دیتابیس هست، خوب شما با کدنویسی هر بار محتوا رو از دیتابیس میخونید و درون اون تکس و ایمیج نشون میدید و نیازی نیست هی اکتیویتی و لایوت ایجاد کنید.
این کاری که شما کردید کوچکترین و بی اهمیت ترین مشکلش افزایش حجم برنامه و در شرایطی هم ممکنه باعث کاهش سرعت برنامه بشه. اینها مشکلات بی اهمیتی هستند که برای برنامه اتون به وجود میاد.
مشکل اصلی اینجاست که اگر شما قرار باشه بانک شعر رو درست کنید شامل صد هزار شعر چیکار میکنید؟؟؟ صد هزار تا اکتیویتی و لایوت درست میکنید؟؟!؟
حالا صدهزار بار هم با کپی پست درست میکنید و میگیدید سخت نیست یک کپی پسته! ولی منطقی نیست و باعث افزایش حجم و سنگینی برنامه میشه! این به کنار، حالا یک تغییریی بخواهید تو شکل برنامه اتون بدید! ناچار میشد صدهزار لایوت و اکتیویتی رو از اول درست کنید! فقط فکرشو بکنید:) شما به نظرم تو این سبک کار کردن تجدید نظر کنید و از همین الان اصولی کار رو پیش ببرید. بنده هم قبلا برنامه های آموزشی درست کردم که چندصد مطلب آموزشی داشته باشن ولی همه رو تو یک لایوت نشون میدادم + چندتا لایوت واسه لیست و صفحه اصلی و تنظیمات و جستجو و... .

esmail3309
شنبه 22 شهریور 1393, 14:18 عصر
خب آره حق با شماست تازه کارم دیگه:لبخند:



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

چطوری؟میشه توضیح بدید؟

omid.n1990
شنبه 22 شهریور 1393, 14:34 عصر
خوب بستگی به کد و منبع محتواتون داره، فرضا اگر از دیتابیس میخونید و دورن فایل تکس ویو میخواهید قرار بدید و فهرست مطالبتون رو هم تو یک لیست ویو دارید. وقتی مثلا کاربر روی یکی از آیتمهای لیست اصلی تون کلیک کرد تا به یک محتوا بره شما مقدار اون آیتمی که کاربر کلیک کرده رو به اکتیوتی میفرستید و بعد به صورت شبه کد زیر میشه انجام داد.

n= item number we want to show
String s = read field(1) row(n) from tblName of database
TextView tv= (TextView)findviewbyId(R.id.tvShow);
tv.setText(s);


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

mohammadi1366
یک شنبه 23 شهریور 1393, 02:25 صبح
میشه این کار رو از طریق کلاس گلوبال و استرینگ نشون بدید(omid.n1990)

abbasalim
یک شنبه 23 شهریور 1393, 11:51 صبح
میشه این کار رو از طریق کلاس گلوبال و استرینگ نشون بدید(omid.n1990)
دوست عزیز اینجا بحث موبایل هست برنامه نویسی برای دسکتاپ زیاد اینجور چیزا مهم نیست چون فضای رم خیلی بالاست ولی برای موبایل باید حواست به حافظه هم باشه تا زیاد اشغال نشه
**
بهترین راه استفاده از دیتابیس هست

daniel021
یک شنبه 23 شهریور 1393, 13:04 عصر
:متعجب:یا حضرت عباس 200 تا؟ :متعجب::متعجب::افسرده:

:شیطان: