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

در باره باز شدن یک پنل زیر کیبرد در هنگام کلیک کردن روی edit text


arastooms

سوال

سلام به همه عزیزان 
یک edit text دارم در برنامه که وقتی روش کلیک میکنی اتوماتیک کیبرد گوشی باز میشه 
حالا تئ اکتیویتی دکمه و منو های دیگه ای هم دارم که دوست ندارم وقتی کیبرد فعال هست اونا هم فعال باشه 

میخام یک پنل تعریف کنم با رنگ کدر رنگ و شفاف که وقتی روی edit text کاربرکلیک کرد که چیزی وارد کنه 
هم رمان با visibel شدن کیبرد اونم visibel بشه و با رفتن کیبرد هم غیر فعال بشه 
آیا باید این رو در اکتیویتی textedit بنویسم یا جای دیگه 
و چه کدی رو باید بنویسم 
مرسی

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

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

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

سلام ارسطو جان.

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

 

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

چیزی من احتمال میدم ، دلیلش اینه که اومدی توی ساب FocusChange ادیت تکست کد مربوط به نمایان شدن پنل رو نوشتی ، و دفعه دوم که میزنی روش فوکوس هنوز روی ادیت تکست قرار داره و نمیتونه دوباره اون ساب رو اجرا بکنه.

 

حالا بیا توی ساب Panelzirkeybord_Touch کدهایی که نوشتی بعدازاین کدها ، روی شی دیگه ای که روی اکتیویتیت هست فوکوس بکن تا فوکوس از روی ادیت تکست ورداشته بشه.

Sub Panelzirkeybord_Touch (Action As Int, X As Float, Y As Float)
	Panelzirkeybord.Visible=False
	p.HideKeyboard(Activity)
 
listview1.RequestFocus
End Sub

من لیست ویو رو مد نظرقرار دادم ، اگه جواب نداد روی ویو های دیگه مثل باتن و... امتحان کن.

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

درود

 

شما بیاید چک کنید اگر کیبورد فعال بود پنل رو نمایش بدید 

Dim ref As Reflector

Sub HardwareKeyboardPresent As Boolean
    ref.Target = ref.GetContext
    ref.Target = ref.RunMethod("getResources")
    ref.Target = ref.RunMethod("getConfiguration")
    Dim keyboard As Int = ref.GetField("keyboard")
    Return keyboard <> 1 'KEYBOARD_NOKEYS - return true if keyboard, else return false 
End Sub

و شرطو اینجور بنویسید :

If HardwareKeyboardPresent = True Then
Panel1.Visible = True     
End If
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

درود

 

شما بیاید چک کنید اگر کیبورد فعال بود پنل رو نمایش بدید 

Dim ref As Reflector

Sub HardwareKeyboardPresent As Boolean
    ref.Target = ref.GetContext
    ref.Target = ref.RunMethod("getResources")
    ref.Target = ref.RunMethod("getConfiguration")
    Dim keyboard As Int = ref.GetField("keyboard")
    Return keyboard <> 1 'KEYBOARD_NOKEYS - return true if keyboard, else return false 
End Sub

و شرطو اینجور بنویسید :

If HardwareKeyboardPresent = True Then
Panel1.Visible = True     
End If

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

امید وارم روزی بتونم این محبت های شما رو با تولید محتوا در سایت جبران کنم و درس پس بدم

/////////////////

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

ولی فقط یک بار کار میکنه 

یعنی کلیک میکنم روی ادیت تکس میاد و پنل باز میشه 

کیبرد هم روش باز میشه

بعد وقتی رو پنل کلیک میکنم 

کیبرد و پنل بسته میشه 

/////////////////

تا اینجا عالی 

////////////////

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

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

من نمیدونم کجاس که دوباره صفرش کنم یا به حالت اول برگردونم بعد از تاچ روی پنل ( در ساب تاچ )

 



Sub Panelzirkeybord_Touch (Action As Int, X As Float, Y As Float)
	Panelzirkeybord.Visible=False
	p.HideKeyboard(Activity)

End Sub
Sub Panelzirkeybord_Click
	
End Sub
Sub EditText1_EnterPressed
	
End Sub
Sub EditText1_FocusChanged (HasFocus As Boolean)
		Panelzirkeybord.Visible=True
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

قربانت ارسطو جان شما خیلی لطف دارید

ببینید الان وقتی ک پنل کلیک شد دقیقا میخواید چ کاری انجام بدید ؟

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

قربانت ارسطو جان شما خیلی لطف دارید

ببینید الان وقتی ک پنل کلیک شد دقیقا میخواید چ کاری انجام بدید ؟

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

ببینید اکتیویتی اصلی دیکشنری هست 

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

همه چی هم مرتبه ( برای اینکه لیست ویو زیر غیر قابل دست رسی بشه) و میره عکس 2

 

Sub EditText1_FocusChanged (HasFocus As Boolean)
		Panelzirkeybord.Visible=True
End Sub

//////////////////////////

عکس 2 

بهش گفتم اگر کاربر روی پنل کلیک کرد بیا پنل و کیبرد رو ببند با هم ( تا یوزر حالا از لیست ویو استفاده کنه )

در این ساب  و میره عکس 3

 


Sub Panelzirkeybord_Touch (Action As Int, X As Float, Y As Float)
	Panelzirkeybord.Visible=False
	p.HideKeyboard(Activity)
 
End Sub

///////////////////////////

همه چی هم مرتبه و خوب پیش میره که میبینی عکی شماره 3 هست

////////////////////////

حالا باید برگردیم نقطه اول عکس سه کار بر مجدد کلیک میکنه و میره 

عکس چهار

باید پنل و کیبرد با هم باز بشه 

که نمیشهههههههههههههه

////////////////////////

نمیدونم کجا رو اشتباه نوشتم 

sdfghjk.png

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

دوستان یه نگاهی به این میندازین 
نمی دونم چرا نمی تونم درستش کنم
مرسی

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

سلام ارسطو جان.

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

 

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

چیزی من احتمال میدم ، دلیلش اینه که اومدی توی ساب FocusChange ادیت تکست کد مربوط به نمایان شدن پنل رو نوشتی ، و دفعه دوم که میزنی روش فوکوس هنوز روی ادیت تکست قرار داره و نمیتونه دوباره اون ساب رو اجرا بکنه.

 

حالا بیا توی ساب Panelzirkeybord_Touch کدهایی که نوشتی بعدازاین کدها ، روی شی دیگه ای که روی اکتیویتیت هست فوکوس بکن تا فوکوس از روی ادیت تکست ورداشته بشه.

Sub Panelzirkeybord_Touch (Action As Int, X As Float, Y As Float)
	Panelzirkeybord.Visible=False
	p.HideKeyboard(Activity)
 
listview1.RequestFocus
End Sub

من لیست ویو رو مد نظرقرار دادم ، اگه جواب نداد روی ویو های دیگه مثل باتن و... امتحان کن.

:gol:  :gol:  :gol: 

پژمان جان بسیار عالی مثل همیشه عالی راهنمایی کردید و عمل کرد

حق با شما بود 

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

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

که قفل بشه و دوستان دیگه استفاده کنند

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

بایگانی شده

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

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

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