m3r 7 ارسال شده در 13 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۶ سلام من یه برنامه نوشتم که از طریق tcp اطلاعات رو دریافت میکنه و نمایش میده سوالم اینجاست که تابع دریافت درون اکتیویتی main قرار داره و وقتی به اکتویویتی دیگه میرم دیگه اصلا اون تابع کار نمیکنه! چطور میتونم از یه تابع که درون اکتیویتی main قرار داره درون اکتیویتی دیگه استفاده کنم؟ ممنون لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,583 ارسال شده در 18 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 18 آذر، ۱۳۹۶ شما بهتره همه ی کارهایی که برای دریافت میکنید رو توی یه سرویس انجام بدین و هرجا خواستین اون سرویس رو استارت و مقادیر رو بگیرین. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 18 آذر، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 18 آذر، ۱۳۹۶ در 11 ساعت قبل، محمدرضا شاهپیری گفته است : شما بهتره همه ی کارهایی که برای دریافت میکنید رو توی یه سرویس انجام بدین و هرجا خواستین اون سرویس رو استارت و مقادیر رو بگیرین. ممنون از راهنماییتون مشکلم حل شد لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mehdi29665 4 ارسال شده در 19 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 19 آذر، ۱۳۹۶ در 16 ساعت قبل، m3r گفته است : ممنون از راهنماییتون مشکلم حل شد سلام میشه راهنمایی کنید مشکلتون دقیقا چطور حل شد. تشکر لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir54 138 ارسال شده در 13 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۶ در 10 دقیقه قبل، m3r گفته است : سلام من یه برنامه نوشتم که از طریق tcp اطلاعات رو دریافت میکنه و نمایش میده سوالم اینجاست که تابع دریافت درون اکتیویتی main قرار داره و وقتی به اکتویویتی دیگه میرم دیگه اصلا اون تابع کار نمیکنه! چطور میتونم از یه تابع که درون اکتیویتی main قرار داره درون اکتیویتی دیگه استفاده کنم؟ ممنون سلام ساده ترین اینه که داخل سرویس starter یک متغییر ایجاد کنید و درون اون بریزید و کل برنامه اونو میشه استفاده کرد لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 13 آذر، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۶ در 1 دقیقه قبل، amir54 گفته است : سلام ساده ترین اینه که داخل سرویس starter یک متغییر ایجاد کنید و درون اون بریزید و کل برنامه اونو میشه استفاده کرد ممنون بابت راهنمایی من دقیقا متوجه نشدم ولی خودم یه متغیر سراسری در اکتیویتی main تعریف کردم و درون اکتیویتی دیگه استفاده کردم مشکل اینه که وقتی میرم تو یه اکتیویتی دیگه دیگه اون تابع دریافت که درون اکتیویتی main هست اجرا نمیشه که مقدار متغیر سراسری رو تغییر بده لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir54 138 ارسال شده در 13 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۶ در هم اکنون، m3r گفته است : ممنون بابت راهنمایی من دقیقا متوجه نشدم ولی خودم یه متغیر سراسری در اکتیویتی main تعریف کردم و درون اکتیویتی دیگه استفاده کردم مشکل اینه که وقتی میرم تو یه اکتیویتی دیگه دیگه اون تابع دریافت که درون اکتیویتی main هست اجرا نمیشه که مقدار متغیر سراسری رو تغییر بده شاید بعد از اجرای اکتیویتی جدید اکتیویتی قبلی رو میبندید و من برای شما عکس متغییر سراسری سرویس رو عکس گرفتم اینم تست کنید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 13 آذر، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۶ در 14 دقیقه قبل، amir54 گفته است : شاید بعد از اجرای اکتیویتی جدید اکتیویتی قبلی رو میبندید و من برای شما عکس متغییر سراسری سرویس رو عکس گرفتم اینم تست کنید ممنون بابت وقتی که میزارید این کار رو هم کردم اما باز هم فقط زمانی که تو اکتیویتی main هستم دریافت انجام میشه در ضمن من activity رو هم نمیبنمدم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir54 138 ارسال شده در 13 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۶ در 32 دقیقه قبل، m3r گفته است : ممنون بابت وقتی که میزارید این کار رو هم کردم اما باز هم فقط زمانی که تو اکتیویتی main هستم دریافت انجام میشه در ضمن من activity رو هم نمیبنمدم کد برنامه تون رو بفرستین تا بیشتر کمک کنیم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,583 ارسال شده در 14 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 14 آذر، ۱۳۹۶ دوست عزیز توابع مربوط به هر ماژول فقط توی همون ماژول میتونه استفاده بشه و تنها راه استفادش توی ماژولهای دیگه استفاده از دستور callsub هست. که زیاد تو انجمن درموردش بحث شده. از ست کردن متغیر گلوبال و این جور کارا پرهیز کنید. بهترین راه استفاده از اینتنت و فرستادن مقادیر از این طریق هست. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 14 آذر، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 14 آذر، ۱۳۹۶ در 8 ساعت قبل، محمدرضا شاهپیری گفته است : دوست عزیز توابع مربوط به هر ماژول فقط توی همون ماژول میتونه استفاده بشه و تنها راه استفادش توی ماژولهای دیگه استفاده از دستور callsub هست. که زیاد تو انجمن درموردش بحث شده. از ست کردن متغیر گلوبال و این جور کارا پرهیز کنید. بهترین راه استفاده از اینتنت و فرستادن مقادیر از این طریق هست. ممنون بابت راهنمایی دستور call sub رو استفاده کردم ولی اتفاقی نیفتاد!! تابع TcpStreams_NewData فقط زمانی فراخوانی میشه که اطلاعات دریافت شه و همینجوری نمیشه فراخوانیش کرد چون یه متغیر ورودی داره که خودش مقدار میگیره اگه در مورد intent یه توضیح بدین ممنون میشم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 25 آذر، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 25 آذر، ۱۳۹۶ در در 1396/09/19, 13:49:19، mehdi29665 گفته است : سلام میشه راهنمایی کنید مشکلتون دقیقا چطور حل شد. تشکر سلام شرمنده من یه مدت نبودم تمام کدها و توابع مربوط به network رو بردم تو service و از اکتویتی main زمانی که میخوام به سرور کانکت بشم سرویس رو اجرا میکنم.تو سرویس هم یه متغیر سراسری تعریف کردم که زمان دریافت سرور مقدارش تغییر میکنه و اینجوری تو تمام اکتیویتیها در دسترس هست لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohsen m 155 ارسال شده در 14 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 14 آذر، ۱۳۹۶ باسلام من توابع را داخل یک ماژول کد مینویسم و در هر اکتیویتی که بخوام صدا میزنم مشکلی هم تاحالا پیش نیومده برای کدهام برای مثال کدهای اتصال و اینیشیالایز به دیتابیس را من در قالب تابع ایجاد میکنم و به راحتی اونارو در هرجا که بخوام فرآخوانی میکنم. پس یه Code Module بسازید و تابع را داخش ایجاد کنید. بعد در هر اکتیویتی که خواستید با نام Code Module و نام تابع اونا فرآخوانی کنید. Sub ForseRtlSupported Dim j,jo As JavaObject jo.InitializeStatic ("android.view.View") If j.InitializeStatic ("android.os.Build$VERSION").GetField ("SDK_INT") > 16 Then j.InitializeContext.RunMethodJO("getWindow",Null).RunMethodJO("getDecorView",Null) _ .RunMethod ("setLayoutDirection",Array(jo.GetField ("LAYOUT_DIRECTION_RTL"))) End If End Sub CodeModule.ForseRtlSupported لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 15 آذر، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 15 آذر، ۱۳۹۶ در 12 ساعت قبل، mohsen m گفته است : باسلام من توابع را داخل یک ماژول کد مینویسم و در هر اکتیویتی که بخوام صدا میزنم مشکلی هم تاحالا پیش نیومده برای کدهام برای مثال کدهای اتصال و اینیشیالایز به دیتابیس را من در قالب تابع ایجاد میکنم و به راحتی اونارو در هرجا که بخوام فرآخوانی میکنم. پس یه Code Module بسازید و تابع را داخش ایجاد کنید. بعد در هر اکتیویتی که خواستید با نام Code Module و نام تابع اونا فرآخوانی کنید. Sub ForseRtlSupported Dim j,jo As JavaObject jo.InitializeStatic ("android.view.View") If j.InitializeStatic ("android.os.Build$VERSION").GetField ("SDK_INT") > 16 Then j.InitializeContext.RunMethodJO("getWindow",Null).RunMethodJO("getDecorView",Null) _ .RunMethod ("setLayoutDirection",Array(jo.GetField ("LAYOUT_DIRECTION_RTL"))) End If End Sub CodeModule.ForseRtlSupported سلام این تابعی که من میگم اصلا خودم فراخوانی نمیکنم (و نمیشه خودم فراخوانی کنم چون مقدار ورودی تابع همون داده دریافتی از سمت فرستنده هست) و به صورت اتوماتیک در اکتیویتی main وقتی دیتا دریافت میشه اجرا میشه و الان مشکل اینجاست که وقتی در اکتیویتی دیگه هستم زمان دریافت دیتا این تابع خودش باید اجرا بشه و من نمیتونم خودم اجراش کنم چون ورودی تابع همون داده ارسال شده از سمت فرستنده هست لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,583 ارسال شده در 15 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 15 آذر، ۱۳۹۶ عزیز من فکر کنم راه رو اشتباه دارین میرین کلا. وقتی شما توی یه اکتیویتی هستید دیگه به هیچ وجه نمیتونید از متدهای اکتیویتیای دیگه استفاده کنید چون اکتیویتی فقط زمانی قابل دسترسه که توحالت onresum باشه. کاری که شما میخواین انجام بدین نیاز به کلاس جداگونه داره. شما یه کلاس بنویسید و متدتونو توش بنویسید و هرجایی که میخواین از اون استفاده کنید. به عنوان مثال کلاستون و متدتون به شکل زیر باشه Sub Class_Globals End Sub Public Sub Initialize End Sub Sub metod1(myfiled As String) Log(myfiled) End Sub حالا هرجایی میخواین به شکل زیر استفاده کنید Dim myclass1 As myclass myclass1.Initialize myclass1.metod1("mystring") لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 16 آذر، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 16 آذر، ۱۳۹۶ در در 1396/09/15, 11:39:44، محمدرضا شاهپیری گفته است : عزیز من فکر کنم راه رو اشتباه دارین میرین کلا. وقتی شما توی یه اکتیویتی هستید دیگه به هیچ وجه نمیتونید از متدهای اکتیویتیای دیگه استفاده کنید چون اکتیویتی فقط زمانی قابل دسترسه که توحالت onresum باشه. کاری که شما میخواین انجام بدین نیاز به کلاس جداگونه داره. شما یه کلاس بنویسید و متدتونو توش بنویسید و هرجایی که میخواین از اون استفاده کنید. به عنوان مثال کلاستون و متدتون به شکل زیر باشه Sub Class_Globals End Sub Public Sub Initialize End Sub Sub metod1(myfiled As String) Log(myfiled) End Sub حالا هرجایی میخواین به شکل زیر استفاده کنید Dim myclass1 As myclass myclass1.Initialize myclass1.metod1("mystring") دوست عزیز الان مشکل من اینجاست که اون sub metod1 که شما نوشتید و یه رشته ورودی داره رو من نمیتونم استفاده کنم! چون رشته ورودی رو من نمیتونم بهش بدم و زمان دریافت اون رشته مقدار میگیره! Sub WiFi_Socket_Connected (Connected As Boolean) If Connected = True Then ToastMessageShow("Connected",True) TcpStreams.Initialize(WiFi_Socket.InputStream,WiFi_Socket.OutputStream,"tcpStreams") Button1.Text = "Connected" Button1.TextColor = Colors.Red Else ToastMessageShow("Server not Found",True) Button1.TextColor = Colors.Black End If End Sub Public Sub TcpStreams_NewData (Buffer() As Byte) Dim Rx_Stringa As String Rx_Stringa = BytesToString(Buffer, 0, Buffer.Length, "UTF8") bu=bu&Rx_Stringa End Sub Sub Activity_Resume ServerSocket1.Initialize(0, "") MioIP = ServerSocket1.GetMyIP Label1.Text = MioIP Label3.Text = Port Label2.Text = ServerIp End Sub Sub Activity_Pause (UserClosed As Boolean) End Sub Sub Button1_Click WiFi_Socket.Initialize("WiFi_Socket") ServerIp = Label2.Text Port = Label3.Text WiFi_Socket.Connect(ServerIp,Port,5000) End Sub اون تابع tcpstreams_newdata منظورم هست لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 17 آذر، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 17 آذر، ۱۳۹۶ دوستان کسی نظری نداره؟؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
m3r 7
سلام
من یه برنامه نوشتم که از طریق tcp اطلاعات رو دریافت میکنه و نمایش میده
سوالم اینجاست که تابع دریافت درون اکتیویتی main قرار داره و وقتی به اکتویویتی دیگه میرم دیگه اصلا اون تابع کار نمیکنه!
چطور میتونم از یه تابع که درون اکتیویتی main قرار داره درون اکتیویتی دیگه استفاده کنم؟
ممنون
لینک ارسال
به اشتراک گذاری در سایت های دیگر
16 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.