ใช้ for loop ในการ Validate Edittext Android
สวัสดีครับ หลายๆคนอาจจะเคยใช้ใช้งาน Edittext ที่เป็น Widget ตัวนึงบน Android กันมาบ้างแล้ว ซึ่งการใช้งาน Edittext หรือช่องกรอกข้อความนั้น ส่วนใหญ่แล้วจะต้องมีการดักข้อมูล (Validate) เพื่อดักข้อมูลที่ไม่ต้องการออกไป เช่น ข้อมูลเบอร์โทรศัพท์ จะเอาแต่ตัวเลขไม่เอาอักขระและ Edittext ห้ามว่าง , ข้อมูลอีเมลล์ จะต้องเป็นโครงสร้างมี @.com เช่น test@gmail.com ซึ่งถ้าเกิดว่า Edittext นั้นมีน้อยก็ไม่มีปัญหาอะไรเพราะว่าสามารถใส่เงื่อนไขต่างๆ อย่างไม่ยากเย็นอะไร แต่ถ้ามี Edittext สัก 10 - 20 ตัวขึ้นไปอันนี้เหนื่อยแน่ เพราะต้องมาใส่เงื่อนไขทุกตัว
ไฟล์ activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="EditText1" android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium" android:textColor="@android:color/black" /> <EditText android:id="@+id/edt_text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="EditText2" android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium" android:textColor="@android:color/black" /> <EditText android:id="@+id/edt_text2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="EditText3" android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium" android:textColor="@android:color/black" /> <EditText android:id="@+id/edt_text3" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium" /> <Button android:id="@+id/btn1" android:onClick="Check_EditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@color/colorPrimary" android:text="Check" android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium" android:textColor="@android:color/white" android:textStyle="bold" /> </LinearLayout>
ไฟล์ MainActivity.java
หวังว่าจะเป็นประโยชน์ต่อใครหลายๆคนนะครับ การใช้ for loop นั้นไม่ได้ใช้ได้เฉพาะกับ Edittext อย่างเดียว แต่สามารถนำไปใช้ได้หลายอย่าง แต่ที่เห็นชัดๆ ก็คงจะเป็น String เพราะตามตัวอย่างหลายๆ ที่ก็จะใช้ String กัน ^^
public class MainActivity extends AppCompatActivity { EditText edt_text1, edt_text2, edt_text3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edt_text1 = findViewById(R.id.edt_text1); edt_text2 = findViewById(R.id.edt_text2); edt_text3 = findViewById(R.id.edt_text3); } public void Check_EditText(View view) { EditText edt_array[] = {edt_text1, edt_text2, edt_text3}; for (int i = 0; i < edt_array.length; i++) { if (edt_array[i].getText().toString().trim().isEmpty()) { edt_array[i].setError("Edittext" + (i + 1) + " is empty"); edt_array[i].requestFocus(); return; } } Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show(); } }
หวังว่าจะเป็นประโยชน์ต่อใครหลายๆคนนะครับ การใช้ for loop นั้นไม่ได้ใช้ได้เฉพาะกับ Edittext อย่างเดียว แต่สามารถนำไปใช้ได้หลายอย่าง แต่ที่เห็นชัดๆ ก็คงจะเป็น String เพราะตามตัวอย่างหลายๆ ที่ก็จะใช้ String กัน ^^
ความคิดเห็น