m3r 7 ارسال شده در 4 اسفند، 2017 اشتراک گذاری ارسال شده در 4 اسفند، 2017 سلام من یه برنامه نوشتم که از طریق tcp اطلاعات رو دریافت میکنه و نمایش میده سوالم اینجاست که تابع دریافت درون اکتیویتی main قرار داره و وقتی به اکتویویتی دیگه میرم دیگه اصلا اون تابع کار نمیکنه! چطور میتونم از یه تابع که درون اکتیویتی main قرار داره درون اکتیویتی دیگه استفاده کنم؟ ممنون لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,631 ارسال شده در 9 اسفند، 2017 اشتراک گذاری ارسال شده در 9 اسفند، 2017 شما بهتره همه ی کارهایی که برای دریافت میکنید رو توی یه سرویس انجام بدین و هرجا خواستین اون سرویس رو استارت و مقادیر رو بگیرین. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 9 اسفند، 2017 سازنده اشتراک گذاری ارسال شده در 9 اسفند، 2017 در 11 ساعت قبل، محمدرضا شاهپیری گفته است : شما بهتره همه ی کارهایی که برای دریافت میکنید رو توی یه سرویس انجام بدین و هرجا خواستین اون سرویس رو استارت و مقادیر رو بگیرین. ممنون از راهنماییتون مشکلم حل شد لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mehdi29665 4 ارسال شده در 10 اسفند، 2017 اشتراک گذاری ارسال شده در 10 اسفند، 2017 در 16 ساعت قبل، m3r گفته است : ممنون از راهنماییتون مشکلم حل شد سلام میشه راهنمایی کنید مشکلتون دقیقا چطور حل شد. تشکر لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir54 138 ارسال شده در 4 اسفند، 2017 اشتراک گذاری ارسال شده در 4 اسفند، 2017 در 10 دقیقه قبل، m3r گفته است : سلام من یه برنامه نوشتم که از طریق tcp اطلاعات رو دریافت میکنه و نمایش میده سوالم اینجاست که تابع دریافت درون اکتیویتی main قرار داره و وقتی به اکتویویتی دیگه میرم دیگه اصلا اون تابع کار نمیکنه! چطور میتونم از یه تابع که درون اکتیویتی main قرار داره درون اکتیویتی دیگه استفاده کنم؟ ممنون سلام ساده ترین اینه که داخل سرویس starter یک متغییر ایجاد کنید و درون اون بریزید و کل برنامه اونو میشه استفاده کرد لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 4 اسفند، 2017 سازنده اشتراک گذاری ارسال شده در 4 اسفند، 2017 در 1 دقیقه قبل، amir54 گفته است : سلام ساده ترین اینه که داخل سرویس starter یک متغییر ایجاد کنید و درون اون بریزید و کل برنامه اونو میشه استفاده کرد ممنون بابت راهنمایی من دقیقا متوجه نشدم ولی خودم یه متغیر سراسری در اکتیویتی main تعریف کردم و درون اکتیویتی دیگه استفاده کردم مشکل اینه که وقتی میرم تو یه اکتیویتی دیگه دیگه اون تابع دریافت که درون اکتیویتی main هست اجرا نمیشه که مقدار متغیر سراسری رو تغییر بده لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir54 138 ارسال شده در 4 اسفند، 2017 اشتراک گذاری ارسال شده در 4 اسفند، 2017 در هم اکنون، m3r گفته است : ممنون بابت راهنمایی من دقیقا متوجه نشدم ولی خودم یه متغیر سراسری در اکتیویتی main تعریف کردم و درون اکتیویتی دیگه استفاده کردم مشکل اینه که وقتی میرم تو یه اکتیویتی دیگه دیگه اون تابع دریافت که درون اکتیویتی main هست اجرا نمیشه که مقدار متغیر سراسری رو تغییر بده شاید بعد از اجرای اکتیویتی جدید اکتیویتی قبلی رو میبندید و من برای شما عکس متغییر سراسری سرویس رو عکس گرفتم اینم تست کنید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 4 اسفند، 2017 سازنده اشتراک گذاری ارسال شده در 4 اسفند، 2017 در 14 دقیقه قبل، amir54 گفته است : شاید بعد از اجرای اکتیویتی جدید اکتیویتی قبلی رو میبندید و من برای شما عکس متغییر سراسری سرویس رو عکس گرفتم اینم تست کنید ممنون بابت وقتی که میزارید این کار رو هم کردم اما باز هم فقط زمانی که تو اکتیویتی main هستم دریافت انجام میشه در ضمن من activity رو هم نمیبنمدم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir54 138 ارسال شده در 4 اسفند، 2017 اشتراک گذاری ارسال شده در 4 اسفند، 2017 در 32 دقیقه قبل، m3r گفته است : ممنون بابت وقتی که میزارید این کار رو هم کردم اما باز هم فقط زمانی که تو اکتیویتی main هستم دریافت انجام میشه در ضمن من activity رو هم نمیبنمدم کد برنامه تون رو بفرستین تا بیشتر کمک کنیم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,631 ارسال شده در 4 اسفند، 2017 اشتراک گذاری ارسال شده در 4 اسفند، 2017 دوست عزیز توابع مربوط به هر ماژول فقط توی همون ماژول میتونه استفاده بشه و تنها راه استفادش توی ماژولهای دیگه استفاده از دستور callsub هست. که زیاد تو انجمن درموردش بحث شده. از ست کردن متغیر گلوبال و این جور کارا پرهیز کنید. بهترین راه استفاده از اینتنت و فرستادن مقادیر از این طریق هست. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 5 اسفند، 2017 سازنده اشتراک گذاری ارسال شده در 5 اسفند، 2017 در 8 ساعت قبل، محمدرضا شاهپیری گفته است : دوست عزیز توابع مربوط به هر ماژول فقط توی همون ماژول میتونه استفاده بشه و تنها راه استفادش توی ماژولهای دیگه استفاده از دستور callsub هست. که زیاد تو انجمن درموردش بحث شده. از ست کردن متغیر گلوبال و این جور کارا پرهیز کنید. بهترین راه استفاده از اینتنت و فرستادن مقادیر از این طریق هست. ممنون بابت راهنمایی دستور call sub رو استفاده کردم ولی اتفاقی نیفتاد!! تابع TcpStreams_NewData فقط زمانی فراخوانی میشه که اطلاعات دریافت شه و همینجوری نمیشه فراخوانیش کرد چون یه متغیر ورودی داره که خودش مقدار میگیره اگه در مورد intent یه توضیح بدین ممنون میشم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
m3r 7 ارسال شده در 16 اسفند، 2017 سازنده اشتراک گذاری ارسال شده در 16 اسفند، 2017 در در 1396/09/19, 13:49:19، mehdi29665 گفته است : سلام میشه راهنمایی کنید مشکلتون دقیقا چطور حل شد. تشکر سلام شرمنده من یه مدت نبودم تمام کدها و توابع مربوط به network رو بردم تو service و از اکتویتی main زمانی که میخوام به سرور کانکت بشم سرویس رو اجرا میکنم.تو سرویس هم یه متغیر سراسری تعریف کردم که زمان دریافت سرور مقدارش تغییر میکنه و اینجوری تو تمام اکتیویتیها در دسترس هست لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mohsen m 156 ارسال شده در 5 اسفند، 2017 اشتراک گذاری ارسال شده در 5 اسفند، 2017 باسلام من توابع را داخل یک ماژول کد مینویسم و در هر اکتیویتی که بخوام صدا میزنم مشکلی هم تاحالا پیش نیومده برای کدهام برای مثال کدهای اتصال و اینیشیالایز به دیتابیس را من در قالب تابع ایجاد میکنم و به راحتی اونارو در هرجا که بخوام فرآخوانی میکنم. پس یه 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 ارسال شده در 6 اسفند، 2017 سازنده اشتراک گذاری ارسال شده در 6 اسفند، 2017 در 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,631 ارسال شده در 6 اسفند، 2017 اشتراک گذاری ارسال شده در 6 اسفند، 2017 عزیز من فکر کنم راه رو اشتباه دارین میرین کلا. وقتی شما توی یه اکتیویتی هستید دیگه به هیچ وجه نمیتونید از متدهای اکتیویتیای دیگه استفاده کنید چون اکتیویتی فقط زمانی قابل دسترسه که توحالت 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 ارسال شده در 7 اسفند، 2017 سازنده اشتراک گذاری ارسال شده در 7 اسفند، 2017 در در 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 ارسال شده در 8 اسفند، 2017 سازنده اشتراک گذاری ارسال شده در 8 اسفند، 2017 دوستان کسی نظری نداره؟؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
m3r 7
سلام
من یه برنامه نوشتم که از طریق tcp اطلاعات رو دریافت میکنه و نمایش میده
سوالم اینجاست که تابع دریافت درون اکتیویتی main قرار داره و وقتی به اکتویویتی دیگه میرم دیگه اصلا اون تابع کار نمیکنه!
چطور میتونم از یه تابع که درون اکتیویتی main قرار داره درون اکتیویتی دیگه استفاده کنم؟
ممنون
لینک ارسال
به اشتراک گذاری در سایت های دیگر
16 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.