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

انتقال متغییر بین دو اکتیویتی


milad19

سوال

باسلام


ببخشید چطور میشه مقدار یک متغییر رو بین دو اکتیویتی جابجا کرد


یعنی مثلا من یک لیبل دارم و یک باتون در اکتیویتی اول


میخوام وقتی رو باتون کلیک شد مقدار لیبل(مثلا نوشته ی لیبل) ارسال بشه به اکتیویتی دوم و در اونجا ازش استفاده کنم


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

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

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

 

از لیبل میگیرم

اینجور چیزی نوشتم

khasadad = label1.text

میدونستم همینکارو کردی.

خب اینجوری وقتی از لیبل میگیری آخرین عدد رو میگیره دیگه.

کدایی که باهاش پنل ها دارن ادد میشن بذارید ، یعنی همون حلقه فور و اینا...

من میرم برمیگرم امشب جوابتو میدم. :$

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

سلام مجدد.

من از کدات زیاد سر در نیاوردم.

همینجوری راهنمایی میکنم.

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

به فرض ما تو سایت 5تا تگ <p> داریم و میخوایم هر پنج تا رو بگیریم ، بهتره که ما اینو تو لیست بریزیم .

یعنی هر کدوم از اینا که داره گرفته میشه به ترتیب ریخته بشه تو list1. حالا موقع اد کردن پنل مثلا من اینکارو میکنم.

 

یه متغیر تعریف میکنم ازنوع int به نام u.

بعد کدای زیرو مینویسم:

For i=0 To list1.Size
Dim p As Panel
p.Initialize("p")
	ScrollView1.Panel.AddView(p,0,stop,100%x,35%y)
	'این برای دادن عدد شمارش
	u=u+1
	Label1.Text=u
	'این برای دادن عدد شمارش
panel1.tag=u 'این هم برای این که بفهمیم رو کدوم پنل کلیک شده
Next

چیکار کردم.

از 0تا تعداد ایتم های لیست رفتم.

بعد u رو به اضافه 1 کردم و دادمش به لیبل 1 ، که همون کار شمارش مارو انجام میده.

****** خب حالا من میخوام با کلیک کردن روی پنل عدد مورد نظرشو بگیرم.

پس این عدد رو به tag پنل هم میدم. تا موقع کلیکه روش دستور sender رو بنویسم و عدد مربوط به همونی که کلیک شده رو بدم به khas.

Sub panel1_Click
Dim pp As Panel
pp=Sender
khas=pp.tag
'اینجا میاد عدد همون پنل رو میده به khas
StartActivity(name)
End Sub

تموم شد. الان همون عددی که روش کلیک شده همون عدد رو میده به khas.

حالا شاید شما از لیست استفاده نکرده باشی.

اما با اینکار خیلی راحت میتونی به پنل هم عدد رو بدی.

 

یعنی بیا همون جایی که داری یکی یکی عدد رو میدی به لیبل تا شماره گذاری رو انجام بده.

همون عدد رو به تگ پنل هم بده تا بتونیم موقع کلیکش با دستور sender مشخص کنیم که رو پنل مثلا سومی کلیک شده پس عدد همون پنل رو که تو تگ خودش هست بده به khas

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

تو رویداد کلیک روی پنل بزن

CallSubDelayed2(esme_activity_dovom,"ShowText",matn_motaqayer)

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

Public Sub ShowText(text As String)
dim milad as string
milad=text
end sub

text اینجا همون متنیه که تو callsub2 نوشتی

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

ممنون

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

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

اینکاری که میخوای بکنی رو واست توضیح میدم.

با فرض اینکه اسم پنلت panel1 هست.  و داخل اکتیویتی main هستیم. اون متغیر khas هم داخل procees اکتیویتی main تعریفش کن.

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

Sub panel1_Click
Dim pp As Panel
pp=Sender
khas=2
StartActivity(name)
End Sub

و در اون اکتیویتی که استارت شده تو رویدادCreate بنویس:

label1.Text=Main.khas
لینک ارسال
به اشتراک گذاری در سایت های دیگر

باسلام

ببخشید چطور میشه مقدار یک متغییر رو بین دو اکتیویتی جابجا کرد

یعنی مثلا من یک لیبل دارم و یک باتون در اکتیویتی اول

میخوام وقتی رو باتون کلیک شد مقدار لیبل(مثلا نوشته ی لیبل) ارسال بشه به اکتیویتی دوم و در اونجا ازش استفاده کنم

کافیه یک متغیر در قسمت Process Global اکتیویتی دوم ایجاد کنی و قبل از StartActivty به صورت زیر به اون متغیر مقدار بدید :

Activity2.Test = 2

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

 

اینکاری که میخوای بکنی رو واست توضیح میدم.

با فرض اینکه اسم پنلت panel1 هست.  و داخل اکتیویتی main هستیم. اون متغیر khas هم داخل procees اکتیویتی main تعریفش کن.

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

Sub panel1_Click
Dim pp As Panel
pp=Sender
khas=2
StartActivity(name)
End Sub

و در اون اکتیویتی که استارت شده تو رویدادCreate بنویس:

label1.Text=Main.khas

جواب میده اما نمیدونم چراهمش آخرین آیدی یا عدد رو میگیره

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

عدد رو خودت دستی میدی بهش یا ازجایی لیبلی میگیره؟

و برای دادن عدد چی نوشتی واسش.

میدونم چرا آخریو میگیره............

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

کافیه یک متغیر در قسمت Process Global اکتیویتی دوم ایجاد کنی و قبل از StartActivty به صورت زیر به اون متغیر مقدار بدید :

Activity2.Test = 2

ممنون بابت پاسختون

فقط اگه  اینها رو توضیح بدید هرکدوم چی هست ممنون میشم

Activity2.Test = 2

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

ببین Activity2 اون اکتیویتیه هست که تو Process Global ـش متغیری به نامTest تعیرف شده و 2 هم مقداری هستش که میخوایم بدیم.
لینک ارسال
به اشتراک گذاری در سایت های دیگر

فرض کن اکتیویتی اولت اسمش menu1

 

اکتیویتی دوم menu2

 

تو Process Global هر اکتیویتی هر متغییری که بزاری برای تمام اکتیویتی ها قابل استفاده است

 

حالا فرض کن توی Process Global ایکتیویتی menu1 نوشتی dim i as int

 

برای فراخانی این متغیر در اکتیویتی menu2 باید در اونجایی که به کار ببرش بزنی

 

menu1.i

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

سلام مجدد خدمت دوستان


ببینید دوستان در حالت کلی من یه چنین چیزی دارم


unqzk6bq80tjz3do1aku.png


قسمت های سبز و قرمز و آبی پنل هستن


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


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

 

سلام مجدد خدمت دوستان

ببینید دوستان در حالت کلی من یه چنین چیزی دارم

unqzk6bq80tjz3do1aku.png

قسمت های سبز و قرمز و آبی پنل هستن

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

 

یه متغیر تعریف کنید داخل ProccesGloubal به اسم مثلا همون khas و از نوع int

حالا با کلیک روی پنل اون عدد خاص خودتون رو بریزید داخل این متغیر:

khas=2

همین دیگه.

بعد میتونید تو اکتیوتی دیگه استفادش کنید.

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

ممنون از شما


طبق توضیحتون پیش رفتم


اما مشکلی هست


من میام اون عدد خاص رو تو لیبیل هر پنل نمایش میدم که مشکلی نیس و اعداد بترتیب 1و2و3و4و... هستن


بعد اومدم داخل رویداد پنل گفتن مثلا



adadkhas = label1.text

اما متاسفانه میاد و آخرین عدد ثبت شده رو میذاره بجای او عدد،یعنی مثلا آخرین عددم 100 هست روی هر پنلی که کلیک میشه همون 100 رو نمایش میده


از sender هم استفاده کردم که ظاهرا مشکل داشت و ارور داد


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

بایگانی شده

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

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

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