بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

فوکوس روی یک EditText

مدیریت گفتگو
hosseinAmini 12 سال پیش
آخرین تغییر: 12 سال پیش

سلام دوستان
نمیدونم چرا وقتی دوتا EditText تو برنامه قرار میدم و وقتی برنامه رو اجرا میکنم همیشه فوکوس روی EditText پایینیه و کیبورد باز میشه. حالا اگه بخوام با اجرای برنامه اصلا روی هیچ EditText ای فوکوس نباشه چیکار باید کنم؟
ممنون

نظرات

CreativeBoy 12 سال پیش
از تابع ()clearFocus استفاده کن.
hosseinAmini 12 سال پیش
آقا درست نمیشه، روش دیگه ای نیست؟
CreativeBoy 12 سال پیش
یعنی هنوز هم فوکوس رو تکست دومیه؟ (وقتی از clearFocus استفاده میکنیدو فوکوس رو از روی همه editText ها حذف می کنید فوکوس به صورت اتوماتیک میره روی اولین تکست که این default خود اکتیویتی هست فکر کنم)راه حل دیگه اینه که میتونی setFocusable تکست ها رو false کنی بعد وقتی میخوای استفاده کنی true کنی.
hosseinAmini 12 سال پیش
آقا ممنونم از پاسخت، تقریبا درست شد، حداقل اینه که دیگه روی تکست دوم فوکوس نمی کنه.ولی اگه می شد از اول روی هیچ تکستی فوکوس نداشته باشه خیلی عالی می شد.
CreativeBoy 12 سال پیش
خواهش، اولش وقتی سوالتو دیدم اومدم با setFocusable کدشو بنویسم و برات بذارم ولی موفق نشدم، اگه راهشو پیدا کردم همینجا تو پاسخ مینویسم، یا اگه خودت تونستی کدشو بذار ما هم بهره مند بشیم :).

پاسخ‌ها 4

ebrahimiali 12 سال پیش

می تونی این سه خط را بنویسی صد در صد مشکلت حل می شه

 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
MytextView.clearFocus();
MytextView.setSelected(false);

نظرات

hosseinAmini 12 سال پیش
نه درست نشد، وقتی برنامه رو باز میکنم هنوز روی تکست اول فوکوس داره
CreativeBoy 12 سال پیش

سلام 

یه راه پیدا کردم (یه کلک):

1. برای این که focus روی هیچ کدوم از EditText ها نیوفته، یه editText تعریف کن و طول و عرضشو بذار صفر 

2. همه editText ها رو اگه بتونی توی یه آرایه تعریف کنی بهتره 

3. حالا این editText جدید رو بذار اولین خونه آرایه و ()clearFocus رو روی آرایه اجرا کن.

4. هیچی همین دیگه :) حالا فوکوس رو چیزیه که دیده نمیشه :)

 

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

نظرات

مجتبی یگانه 12 سال پیش

روش های غیر حرفه ای :|  ؟!  آخه چرا ؟! کافیه خط پائین رو به کد منیفست اون اکتیویتی که میخوای اتوماتیک فوکوس نگیره اضافه کنی

<activity
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
     android:name=".ActivitySearch"
     android:windowSoftInputMode="stateHidden|adjustResize">
</activity>

نظرات

CreativeBoy 12 سال پیش
مجتبی جان، ما که به اندازه شما تجربه نداریم :). بابت راهنمایی ممنون، ولی من اینو امتحان کردم کار نکرد، هنوز فوکوس رو تکست دومه
مجتبی یگانه 12 سال پیش
منم تجربه ای ندارم ، شما هم شکسته نفسی می کنید ، منظور من سرچ تو اینترنت واسه روش معقول هست ، این مشکل من تو پروژه ام بود، سرچ کردم و پاسخ گرفتم ، سورس رو تغییر دادم و سورس منیفست خودم رو گذاشتم ، احتمالا کد رو در جای درستی نذاشتید
Hossein Rezaei 12 سال پیش

منم توو ی پروژه همچین مشکلی داشتم، این کد رو گذاشتم توو oncreate حل شد

        //force close soft keyboard when this Activity start
        getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .