جلوگیری از نمایش کیبورد (keyboard) هنگام اجرای activity حاوی EditText در برنامه نویسی اندروید
سلام در این سری از آموزش های برنامه نویسی اندروید به بررسی جلوگیری از نمایش کیبورد (keyboard) هنگام اجرای activity حاوی EditText در برنامه نویسی اندروید می پرازیم .
شاید 70 درصد برنامه های ایرانی ها این مشکل را داشته باشد به طور مثال همین که وارد برنامه می شوید یک دفعه کیبور در برنامه بالا میادش اگر همچین برنامه ای را برای Google play ارسال کنید اکانت گوگل شما که حدودا 100 دلار پول آن است (خود اکانت 25 دلار است اما با سرور و ایپی قیمتش بیشتر می شود.) را بن می کند ! یعنی اگر برنامه شما باگی فاحش داشته باشد به راحتی شما را کنار می گذارد البته کافه بازار به این حد نه ولی آن هم در بعضی جا ها بسیار گیر می دهد (مخصوصا متریال دیزاین).
زمانی که در Layout خود یک EditTExt تعریف می کنیم در صورتی که در اکتویتی های متفاوت یا اکتویتی اول باشد کاربر همین که وارد می شود کیبورد برای تایپ بالا می آید برای اینکه از این کار جلوگیری کنیم خط زیر را به AndroidManifest.xml آن اکتیوتی اضافه کنید.
1 | android:windowSoftInputMode="stateHidden|adjustResize" |
راه های دیگری هم وجود دارد راه دوم کد زیر را در آن اکتیویتی که می خواهید کیبودر سریع اجرا نشود قرار دهید.
1 | getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); |
راه سوم ! (همیشه راه های مختلی وجود دارد )
در آن اکتویتی در قسمت Layout یا RelaytiveLayout کد های زیر را قرار دهید.
1 2 | android:focusable="true" android:focusableInTouchMode="true" |
راه چهارم البته این روش از APi 23 به بعد کار می کند
1 | editText.setShowSoftInputOnFocus(false); |
راه پنجم
وارد فایل Style شوید و کد های زیر را درآن قرار دهید.
1 2 3 | <style name="MyTheme" parent="Theme"> <item name="android:windowSoftInputMode">stateHidden</item> </style> |
سپس در قسمت AndroidManifest.xml مربوط به آن اکتیویتی کد زیر را قرار دهید.
1 | <application android:theme="@style/MyTheme"> |
این آموزش هم همانند آموزش های برنامه نویسی دیگر به پایان رسید تمامی مطالب در طی چندین سال تحقیق به دست آماده است.
موفق باشید.
سلام
وظیفه خودم دونستم از مطالب خوبتون تشکر کنم
ان شا الله همیشه موفق و پیروز باشید
سلام.
اگه بخوایم بعد از زدن یک دکمه کیبود بسته بشه باید چیکار کنیم؟
سلام من توی این اندروید مانیفستی که میفرستم چی بزنم که کیبرد نمایش داده بشه همیشه و رد نشه از صفحه گوشی(این متن اندروید مانیفست به بازی هست)?لطفا خودتون یه کدی بزنین و اینجا بفرستین منم کپی میکنم ممنون?
Initialize
Initializes the object and sets the subs that will handle the events.
void
EventName
java.lang.String
SetCustomFilter
Sets a custom filter.
EditText – The target EditText.
DefaultInputType – Sets the keyboard mode.
AcceptedCharacters – The accepted characters.
Example: Create a filter that will accept IP addresses (numbers with multiple dots)
<code>
IME.SetCustomFilter(EditText1, EditText1.INPUT_TYPE_NUMBERS, “0123456789.”)</code>
void
EditText
android.widget.EditText
DefaultInputType
int
AcceptedCharacters
java.lang.String
AddHandleActionEvent
Adds the HandleAction event to the given EditText.
void
EditText
android.widget.EditText
ba
anywheresoftware.b4a.BA
AddHeightChangedEvent
Enables the HeightChanged event. This event is raised when the soft keyboard state changes.
You can use this event to resize other views to fit the new screen size.
Note that this event will not be raised in full screen activities (an Android limitation).
void
ba
anywheresoftware.b4a.BA
SetLengthFilter
Sets a filter that limits the maximum length to the specified value.
void
EditText
android.widget.EditText
MaxLength
int
ShowKeyboard
Sets the focus to the given view and opens the soft keyboard.
The keyboard will only show if the view has received the focus.
void
View
android.view.View
1.1
من توی این اندروید مانیفست چی بزنم که کیبرد نمایش داده بشه همیشه و رد نشه از صفحه گوشی(این متن اندروید مانیفست به بازی هست)?
لطفا خودتون درستش کنین و همینجا برام بفرستین تا کپی کنم ممنون?