آموزش Request Focus در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش Request Focus در برنامه نویسی اندروید می پردازیم همانطور که نام آن پیدا است به معنی درخواست برای focus کردن بروی یک شئی مورد استفاده قرار می گیرد در ادامه با ما همراه باشید.
دو راه برای focus کردن وجود دارد یک از طریق کد و دومی از طریق layout
برای اینکه بروی یک view مثلا EditText فوکس (focus) کنید از کد زیر استفاده کنید.
1 | edittext.requestFocus(); |
از طریق layout
1 2 3 4 5 6 7 8 9 10 11 | <EditText android:id="@+id/editText1" android:hint="EditText 1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="60dp" android:ems="10" android:inputType="textPersonName" > <requestFocus /> </EditText> |
با این کار در EditText وقتی وارد برنامه می شوید کیبور به شکل اتومایتک برای تایپ برای شما نمایش داده می شود. البته این کار زیاد جالب نیست.
در ادامه به یک مثال خواهیم پرداخت.
ابتدا در Layout خود کد زیر را قرار دهید. نام Layout در اینجا برابر با activity_main.xml است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <EditText android:id="@+id/editText1" android:hint="EditText 1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="60dp" android:ems="10" android:inputType="textPersonName" > <requestFocus /> </EditText> <EditText android:id="@+id/editText2" android:hint="EditText 2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText1" android:layout_centerHorizontal="true" android:layout_marginTop="48dp" android:ems="10" android:inputType="textPersonName" /> </RelativeLayout> |
و کد مربوط به MainActivity.java همانند زیر می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package ir.programchi; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } |
کد خاصی قرار نداده ایم.
و در صورتی که می خواید به صورت Dynamic باشد
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package ir.programchi; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.EditText; public class MainActivity extends Activity { EditText et1, et2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et1 = (EditText) findViewById(R.id.editText1); et2 = (EditText) findViewById(R.id.editText2); et2.requestFocus(); } } |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.