سلام به ادامه مباحث اموزشی اندروید خوش اومدین،در این مبحث ما با تکست باکس ها(Edittext) کار خواهیم کرد.در اندروید ممکن است بخواهیم از یک صفحه ورود یا یک قسمت جستوجو برای نرم افزاری که داریم میسازیم استفاده کنیم،در اینجور مواقع بهترین ابزار استفاده تکس باکس هاست.ما دراین اموزش به شما نشان خواهیم داد که که چگونه تکست باکس را به لایه خودمون اضافه و چطور از اون استفاده کنیم، پستی که امروز قرار دادم با اموزش (کاربارکمه ها) بی ربط نیست و میتونه یک تمرین خیلی عالی و گذری به اطلاعات قبلیمون باشه.
حالا یک پروژه جدید ایجاد میکنیم(ایجاد،ساخت و اجرای اولین برنامه اندرویدی).من نام برنامه خودم رو Edittext گذاشتم،و از قسمت پالت در پوشه Text Fields ابزار Plain Text را بر روی لایه خودم کشیدم و در مرکزیت اون قرار دادم (اشنایی بیشتر با لایه ها و پالت ها در جلسه های بعدی ).و همچنین یک دکمه(Button)به قسمت زیرین اون اضافه کردم تا هنگام نوشتن یک متن در تکست باکس و کلیلک بر روی دکمه متن داخل تکست باکس به ما نمایش داده بشه.
اول از همه نگاهی بکنیم به اجزای سازنده Edittext:
<EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="21dp" android:ems="10" > <requestFocus /> </EditText>
میبینیم که تکست باکس ما تشکیل شده از یک ID برای شناسای توسط کلاس جاوای برنامه،از خاصیت android:layout_width و android:layout_height برای تعیین عرض و ارتفاع اون استفاده میکنه، برای اطلاعات بیشتر در مورد لایه و خاصیت ها منتظر فصل های بعدی ما باشید خاصیت بعدی که داریم android:layout_alignParentTop هست ،وظیفه این رو داره که ابزار مد نظر ما رو از سمت بالای لایه بچینه.در اندروید ما چندین حالت برای چینش ابزار هامون داریم:راست،چپ،بالا و پایین.در این کد چون Edittext ما در قسمت بالا قرار داره alignParentTop رو فعال کرده این دستور در مواقعی به در ما میخوره که ما بخواهیم هم به صورت افقی و هم به صورت عمودی ابزار مون رو بچینیم. در داخل تصویر میبنیم که لایه ما در حالت افقی هم در یک جا قرار داره.
خاصیت android:layout_marginTop وظیفش فاصله دادن از گوشه های لایه است،طوری که بخواهیم مقدار اون رو کم یا زیاد کنیم از گوشه سمت بالا فاصله میگیره و به سمت پایین میاد.خاصیت android:ems هم که در اینجا 10 نشان داده شده ،به تکست باکس ما میگه که فقط اندازه 10 تا کلمه حق گسترده شدن داره ،الان اگر بخواهیم مقدار ems رو کم کنیم میبینم که اندازه تکست باکس هم کوچکتر شده و بالعکس.
بعد از اینکه با خاصیت های edittext اشنا شدیم حالا وقت اون رسیده که ب کدهای حاوا بریم و رویداد های رو براش تعریف کنیم،از فولدر Src فایل جاوای Mainactivity رو باز میکنم و کدهای زیر رو مینویسیم.(کدهای کامل MainActivity.java)
//معرفی تکست باکس و نام گذاری اون بعدانتخاب محل قرار گیریش از لایه final EditText et = (EditText) findViewById(R.id.editText1); //معرفی باتن و نام گذاریش و انتخاب محل دکمه از لایه Button btn = (Button) findViewById(R.id.button1); //وارد کردن نام دکمه و ایجاد قابلیت فراخوانی در هنگام کلیک با کد onClick btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //معرفی یک رشته و نام گذاری اون و فراخوانی اطلاعات رشته از طریق کد get text , tostring و ارسال اطلاعات به توست String str = et.getText().toString(); Toast msg = Toast.makeText(getBaseContext(),str, Toast.LENGTH_LONG); msg.show(); } }); }
مم با نرم افزار AIDE با گوشی دارم یه کتاب می سازم (AIDE مثل اکلیپسه ) حالا من می خوام با تکست باکس یه صفحه جستجو بسازم ولی نمی دونم چجوری... یعنی می خوام وقتی کاربر داخل تکست باکس چیزی نوشت و دکمه رو لمس کرد نتایج مربوط به اون چیزی که کاربر نوشته نمایش داده بشه