برای دسترسی به یک EditText موجود در لیوت در داخل اکتیوتی از متد findViewById استفاده می کنیم.

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

برای این که بتونیم از داخل اکتیوتی به یک ویو (در اینجا Edit Text) موجود در لیوت دسترسی داشته باشیم و اون رو دستکاری کنیم (مثلاً متن درون اون رو دریافت کنیم، خصوصیات اون رو دستکاری کنیم و …) از متد findViewById مشابه زیر استفاده می کنیم.

نکته :در سمت راست edtID ، آی دی ویو مورد نظر می باشد .
با اجرا شدن کد بالا یک ارجاع به المنت EditText موجود در لیوت (که دارای آی دی edtText می باشد) برای ما ایجاد شده و در آبجکتی با نام edt در سمت چپ ذخیره میشود.از این به بعد هر بلایی رو که خواستیم سر EditText موجود در لیوت بیاریم ، با فراخوانی متدهای موردنظر روی edt ، اون کار رو انجام میدیم.مثلاً برای دریافت متن موجود در EditText متدهای زیر را روی آبجکت edt فراخوانی می کنیم.

 

تمرین : اپلیکیشنی بسازید که شامل یک EditText ، یک Button و یک TextView باشد.سپس متدی بنویسید که عبارت وارد شده در EditText  رو دریافت و آن رو در TextView نمایش بده.(متد نامبرده شده با لمس کردن دکمه توسط کاربر فراخوانی می شود)

تصویر بالا نمای نهایی اپلیکیشن می باشد.

 

یک پروژه جدید بسازید
نام اپلیکیشن : EditTextInActivity
نام دامین اپلیکیشن :apk.manoandroid.com
سطح API اپلیکیشن : ۱۵
نوع اکتیوتی : Empty Activity
نام اکتیوتی : پیشفرض (MainActivity)
نام لیوت : پیش فرض (activity_main)

مراحل انجام کار :
۱- طراحی لیوت (قرار دادن سه المنت EditText و Button و TextView)
۲-دسترسی به المنت EditText از داخل اکتیوتی به وسیله استفاده از متد findViewById() و دریافت مقدار ادیت تکست .
-دسترسی به المنت TextView از داخل اکتیوتی به وسیله استفاده از متد findViewById() و تنظیم مقدار دریافت شده از ادیت تکست روی TextView.

 

مرحله یک (طراحی لیوت)
مشابه زیر سه المنت EditText و Button و TextView را درون لیوت ایجاد کنید.(برای هماهنگی تمامی کدهای موجود در لیوت خود را پاک کرده و کدهای ما را جایگزین کنید.)

 

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

توضیح کدهای بالا
خطوط ۱۸ تا ۲۵ مربوط به تعریف متد setName می باشد.وظیفه این متد دریافت عبارت وارد شده در EditText و نمایش آن در TextView هست .
خط ۱۸ : در این خط تابع setName را تعریف کرده ایم.
برای این که یک تابع توسط رویداد onClick دکمه قابل شناسایی باشد باید سه ویژگی زی را داشته باشد .
۱-سطح دسترسی آن Public باشد.
۲-مقدار برگشتی آن Void باشد.
۳-یک پارامتر از نوع View داشته باشد.
خط ۲۰ : در این خط بوسیله استفاده از متد findViewById یک اشاره به المنت EditText موجود در لیوت کرده و آن را درآبجکت  edtName (در سمت چپ انتساب ) ذخیره کرده ایم.
خط ۲۱ : در این خط بوسیله استفاده از متد findViewById یک اشاره به المنت TextView موجود در لیوت کرده و آن را درآبجکت  txtName (در سمت چپ انتساب ) ذخیره کرده ایم.
خط ۲۳ : در این خط با فراخوانی متد gettext() روی edtName عبارت موجود در EditText را دریافت کرده و با فراخوانی ljn toString بعد از آن این مقدار را به نوع String تبدیل کرده ایم.این مقدار در نهایت در متغیر name موجود در سمت چپ انتساب ذخیه شده است.
خط ۲۴ :در این خط با فراخوانی متد setText روی آبجکت txtName مقدار متغیر رشته ای name (مقداری که از EditTet دریافت کردیم) را روی تکست ویو قرار داده ایم.