EditText در اندروید
در اندرویدEditText ویوهایی هستند که امکان تعامل نوشتاری برنامه را با کاربر فراهم می سازد و بیشتر به منظور دریافت اطلاعات نوشتاری مانند نام و اطلاعات مربوط به کاربر تعبیه شده است تا کاربر در صورت خواست بتواند اطلاعات لازم را به برنامه بدهد و منتظر عملیات مورد نظر خود باشد. در Android، EditText یک ویجت ورودی استاندارد در برنامه های آندروید محسوب می شود که از overlay over TextView می کند با این تفاوت که که خود را قابل ویرایش می کند.بنابراین EditText یک کلاس منشعب شده از کلاس از TextView با عملیات ویرایش متن است. ساده ترین مثال EditText فرم ورود یا ورود به سیستم است.دقت کنید که این ویو را می توان از جمله پرکاربردترین عناصر مختلف در اندروید دانست که برنامه نویس قبل هر چیزی می بایست به با نحوه برنامه نویسی آن آشنایی لازم را داشته باشد. از این رو ضروری است در ارتباط با این موضوع حساسیت بیشتری از خود نشان دهید.
نحوه اضافه کردن EditText به پروژه:
بطور کلی دو روش کلی برای ایجادEditText در برنامه اندروید وجود دارد. راه حل اول همانطور که در مبحث پیشین در موضوع Button مطرح شد افزودن از طریق فایل XML که به شکل زیر می باشد.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ed1"/> </RelativeLayout>
در این روش در فایل XML همانند فایل activity_main.xml و در داخل لایوت های اصلی یا فرعی ، تگ شروع شونده EditText> را تایپ کرده و سپس سایر ویژگی های مربوط به آن پ مانند Hint ، رنگ متن ، اندازه متن ، طول تعداد کاراکترها و … را به آن اضافه می کنیم و سپس با تگ پایانی /> آن را می بندیم. به منظور درک بیشتر موضوع به کدهای زیر دقت کنید:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:layout_width="match_parent" اندازه طول ویو android:layout_height="wrap_content" اندازه عرض یا ارتفاع ویو android:id="@+id/ed1" ایدی یا شناسه ویو android:hint="please write name" متن l,vn hahvi ,d, android:textSize="20sp" انازه متن ویو android:textColor="@color/colorAccent" رنگ متن ویو android:maxLength="20" تعداد کاراکترهای مجاز در ویو android:layout_marginTop="30sp" فاصله ویو از قسمت بالایی صفحه android:gravity="center" موقعیت قرارگیری متن ویو /> </RelativeLayout>
همانطور که در کد های XML فوق می بینید EditText در داخل لایوت اصلی ما یعنی RelativeLayout قرار دارد و دارای ویژگی های متعددی است که در برنامه به هنگام اجرای آن بر روی آن اعمال می شود.
آنچه برای ما مهم است نحوه فراخوانی این عنصر ایجاد شده به منظور اعمال برخی عملیات ها در کلاس مرتبط با آن است. به همین منظور تمامی ویوهای موجود در فایل XML را از طریق ایدی یا شناسه مرتبط با آن ویو در کلاس فراخوانی می کنیم. که در مثال ذکر شده ایدی باتن به شکل زیر تعریف شده است:
برای فراخوانی EditText و سایر ویوها برای منظور برنامه نویسی در کلاس از متد
findViewById(R.id.yourid)
استفاده می کنیم.
به همین منظور لازم است در کلاس ها اولاً فایل XML مرتبط با کلاس مشخص شود. یعنی ما باید مشخص کنیم که قصد فراخوانی چه چیزی را از کدام فایل XMl داریم که در کد زیر در دستور قرمز رنگ مشخص شده است و سپس آن ویو یا عنصر مورد نظر در فایل مربوطه را بر اساس شناسه آن فراخوانی می کنیم و آن در متغیری از نوع خود ذخیره می کنیم.
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText edname = (EditText)findViewById(R.id.ed1);
}
}
تا اینجا ما توانستیم EditText مورد نظر خود را در فایل Xml ایجاد کرده و آن را به کلاس موردنظر خودمان فراخوانی کنیم. اکنون لازم است تعیین کنیم که چگونه می توانیم متن مورد نظر را از کاربر گرفته و بر روی آن عملیات مدنظر خود را اعمال کنیم. بدین منظور لازم است از ابتدا آن را به نوع String تبدیل کنیم . بدین منظور آن را در متغییر از نوع String ذخیره می کنیم که سینتکس کلی ان به شکل زیر می باشد:
String input = edname.getText().toString();
به مثال زیر توجه کنید:
به منظور درک بهتر توضیحات فوق نظر شما را به مثالی جلب می کنیم. در این مثال قرار است کاربر با کلیک کردن بر روی Button متن مورد نظر شما از EditText را گرفته و آن را Toast نمایش دهد .
اگر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را ایجاد کنید
اکلیپس :File ⇒ New Android ⇒ Application Project
اندروید استودیو :File ⇒ New ⇒ New Project
اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk و نوع اکتیویتی (blank یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود را همان MainActivity قرار دهید.
در مسیر res ⇒layout لایه متناظر اکتیوتی اصلی یعنی activity_main را پیدا نمود و کدهای مندرج و پیش فرض آن را پاک کرده و کدهای xml زیر را به آن اضافه کنید:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ed1" android:hint="please write name" android:textSize="20sp" android:textColor="@color/colorAccent" android:maxLength="20" android:layout_marginTop="30sp" android:gravity="center"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Click Me" android:id="@id/button1" android:layout_gravity="center" android:layout_marginTop="50sp"/> </LinearLayout>
سپس به سراغ کلاس اصلی خود یعنی MainActivity رفته و کدهای زیر ر در آن قرار می دهیم.
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText edname = (EditText)findViewById(R.id.ed1); Button captureText = (Button)findViewById(R.id.button1); captureText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String input = edname.getText().toString(); Toast.makeText(getApplication(), input, Toast.LENGTH_LONG).show(); } }); } }
حال می توانید برنامه خود را اجرا کنید و نتیجه کار خود را ببینید. جهت آموزش بیشتر می توانید یک صفحه لاگین طراحی کنید که نام کاربری و رمز عبور کاربر را گرفته و آنها را دوباره به همان کاربر نشان دهد. اگر به مشکل خاصی برخورد کردید می توانید آن را در قسمت دیدگاه ها مطرح کنید.
موفق و پیروز باشید.
0 دیدگاه