رفتن به مطلب
  • 0

چگونه از کمترین activity استفاده کنیم؟


qasem

سوال

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

15 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

خب خیلی ساده هست.

تا جایی که راه داره . همه کد ها رو در یک اکتیویتی پیاده کنید. من خودم به عنوان اولین برنامهم . چون با اکتیویتی اصلا آشنا نبودم. بیشتر از 34 تا صفحه رو در یک اکتیویتی جا دادم. تعداد خط ها شده بود 1803 تا خط.

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

رابط کاربری مناسب

مرتب بودن نام View ها کمک میکنه به استفاده از چند لایه در یک Activity

کوتاه بودن و مفید بودن کدها و تا حد امکان پرهیز از کدهای بیهوده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اگر لی اوت زیاد داری ، لی اوت ها رو با باتون رد کن. چجوری؟ اولش بیا این sub رو اضافه کن :

Sub RemoveView
For i = Activity.NumberOfViews - 1 To 0 Step - 1
	Activity.RemoveViewAt(i)
Next
End Sub

بعد بیا تو هر لی اوت یه باتون بزار و به اون باتون بگو که :

Sub Button1_Click
	RemoveView
	Activity.LoadLayout ("h1")
	End Sub

اینجوری میتونی بی نهایت لی اوت تو یه اکتیویتی بزنی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کاملا حرف مختار عزیز ( VistaMobile ) درسته

اما به شرط اینکه کد نویسی و نام View هات مرتب باشه و بفهمی مثلا btnJoin ماله کدوم Activity هست !

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

 

در ضمن به جای کد مختار میتونید از کد Activity.RemoveAllViews هم استفاده کنید.همین یک خط کد تمامی View هارو حذف میکنه

و همه چیز رو برای Load لایه بعدی شما فراهم میکنه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

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

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

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

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

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

مثلا برای ساختن یک کتاب که برای مثال 50 تا موضوع داره نمیشه 50 تا اکتویتی ساخت یا اینکه نمیشع یک اکتویتی ساخت با 50 تا لایه.

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

مثلا قرار دادن یکسری مقادیر های خاص و کلید ( Key )  برای داده ها تا بتونید تفکیک کنید و دیگه از یک اکتویتی برای نشان دادن تمامی اطلاعات استفاده کنید.

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب خیلی ساده هست.

تا جایی که راه داره . همه کد ها رو در یک اکتیویتی پیاده کنید. من خودم به عنوان اولین برنامهم . چون با اکتیویتی اصلا آشنا نبودم. بیشتر از 34 تا صفحه رو در یک اکتیویتی جا دادم. تعداد خط ها شده بود 1803 تا خط.

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

 

1803 تا خط  :fekr:  :fekr:  :fekr:

 

مگه داریم ؟؟؟؟؟؟؟؟ مگه مشه ؟؟؟؟؟؟

 

حالا خودت هیچ basic هنگ نکرد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

1803 تا خط  :fekr:  :fekr:  :fekr:

 

مگه داریم ؟؟؟؟؟؟؟؟ مگه مشه ؟؟؟؟؟؟

 

حالا خودت هیچ basic هنگ نکرد

درسته...

ولی خوب می گن کل یه برنامه رو توی یک اکتیویتی نوشتن!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

درسته...

ولی خوب می گن کل یه برنامه رو توی یک اکتیویتی نوشتن!

 

این که هیچ بنده یه برنامه دیدم 7-8 اکتیویتی با نزدیک به 2 هزار کد در هر اکتیویتی بود. راهش هم اصولی بود. با استفاده از انتقال داده ها و ارتباط اکتیویتی ها هم میشه تعداد اکتیویتی رو کاهش داد... مثلا برای یک لیست یو که 200 تا ایتم داره میشه تعریف کرد که اطلاعاتی رو با int ارسال کنه به اکتیویتی دوم که مثلا اگر مقدار 1 بود یه متن رو نشون بده یا 2 بود یه کار دیگه و.... خیلی ها بجای این کار میان 200 تا اکتیویتی میسازن که برنامه رو افتضاح میکنه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما میتونید از متغییر های کنترلی اسفاده کنید و اونها رو مقدار دهی کنید و با استفاده از select case لایوت مورد نظر رو بارگذاری کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما میتونید از متغییر های کنترلی اسفاده کنید و اونها رو مقدار دهی کنید و با استفاده از select case لایوت مورد نظر رو بارگذاری کنید

لطفا بیشتر توضیح بدید

در صورت امکان یک مثال بگذاریذ

لینک ارسال
به اشتراک گذاری در سایت های دیگر

لطفا بیشتر توضیح بدید

در صورت امکان یک مثال بگذاریذ

سلام

مثلا شما یه لیست ویو داری

میای و میگی در هر کلیک ، پوزیشن یا ولیو رو توی یه متغیر گلوبال، ذخیره کنه(به جای اینکه با هر کلیک یه اکتیویتی رو باز کنه) و در اکتیویتی بعدی،  شما میای با دستور if یا SELECT بررسی میکنی که اگه مثدارش 1 بود ، فلان کار انجام شه

اگه مقدارش 2 بود فلان کار و .....

دوست عزیزمون نمسیس با لایوت مثال زدن

SELECT main.meghdar 
Case 1
activity.loadlayout("1")
case 2
activity.loadlayout("2")
case 3 
activity.loadlayout("3")
End SELECT
لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

مثلا شما یه لیست ویو داری

میای و میگی در هر کلیک ، پوزیشن یا ولیو رو توی یه متغیر گلوبال، ذخیره کنه(به جای اینکه با هر کلیک یه اکتیویتی رو باز کنه) و در اکتیویتی بعدی، شما میای با دستور if یا SELECT بررسی میکنی که اگه مثدارش 1 بود ، فلان کار انجام شه

اگه مقدارش 2 بود فلان کار و .....

دوست عزیزمون نمسیس با لایوت مثال زدن

SELECT main.meghdar 
Case 1
activity.loadlayout("1")
case 2
activity.loadlayout("2")
case 3 
activity.loadlayout("3")
End SELECT

این تاپیک واقعا کاربردی؛ بی زحمت بگید کدی که بالا نوشتید، منظورم main.magdar هست رو چه جوری به کار ببرم؟ بزارید با یه مثال بپرسم:

تو یه اکتیویتی مثلا به اسم Home یه لیسیت ویو داریم که چند تا آیتم داریم، توی اکتیویتی بعدی که اسمش مثلا Mohtava هست یه دونه وب ویو داریم؛ حالا سوال اینجاست با چه کدی می شه کاری کرد که با کلیک رو یه آیتم لیست ویو، فایل html مربوط به اون توی اکتیویتی بعدی داخل وب ویو لود شه، ممنون می شم جواب بدید

ضمنا تویه اکتیویتی Mohtava یه تب هاست داریم که اونم سه تا لی اوت را لود می کنه؛ در واقع هر آیتم لیست ویو باید سه تا html لود کنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بازم سلام

فک کنم برای تب هاستت، سه تا وب ویو گذاشتی دیگه؟

حوب

شما مثلا یه لیست ویو داری که یه ایتم داره SearchEngine و یه ایتم داره MailSites 

خوب

شما میای و توی Process_Globals یه متغیر تعریف میکنی به هر اسمی که میخوای 

Dim Loadshavad as int

خوب

توی ایتم کلیک لیست ویو میای و میگی

Loadshavad = value       یا اگه از پوزیشن استفاده میکنی   LoadShavad = Position
StartActivity(mohtava)

با این کار، میفهمی که روی کدوم ایتم کلیک شده

توی اکتیویتی بعدیت میتونی از SELECT Case یا if استفاده کنی

میای و میگی اگه مقدار 1 بود فلان کار و اگه 2 بود فلان کار انجام شه(یعنی اگه روی ایتم اول کلیک شده بود ،یه کار و اگه رو دومی کلیک شده بود، کار ددیگه)

SELECT Home.LoadShavad
Case 1
Webview1.loadurl("Google.com")
Webview2.loadurl("Bing.com")
Webview3.loadurl("yahoo.com")

Case 2 
Webview1.loadurl("Mail.Google.com")
Webview2.loadurl("mail.yahoo.com")
Webv3ew1.loadurl("hotmail.com")

End SELECT

حالا من نمیدونم از جند تا وب ویو استفاده میکنی اما با همین روش، میتوینی برای تمامی ایتم های لیست ویو، توی فقط یک اکتیویتی کد بنویسی(البته بازم میگم بجای دستور SELECT از if هم میتونی استفاده کنی :gol:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...