2016-05-04 17 views
0

ハイ私はアンドロイド開発にはとても新しいです。私は血液型(AB + OR AB- OR A + OR A- OR B + OR B- OR O + OR O-)と私のアプリケーションでは、出生のデータ(DD/MM/YYY)の検証を置くしようとしています。血液群と生年月日の検証のためにコードを書く方法。以下は私のコードです。アンドロイドの血液型と生年月日の確認

Main activity:- 

    package com.example.uniqval.registration; 

    import android.content.ContentValues; 
    import android.content.Intent; 
    import android.database.sqlite.SQLiteDatabase; 
    import android.os.Bundle; 
    import android.support.v7.app.AppCompatActivity; 
    import android.support.v7.widget.Toolbar; 
    import android.text.Editable; 
    import android.text.TextUtils; 
    import android.text.TextWatcher; 
    import android.view.View; 
    import android.view.WindowManager; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.TextView; 
    import android.widget.Toast; 

    public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

     private Button mSubmit; 
     private Button mCancel; 
     private EditText mname; 
     private EditText dob; 
     private EditText mUsername; 
     private EditText mPassword; 
     private EditText mEmail; 
     private EditText mphone; 
     private EditText maddress; 
     private EditText mbloodgroup; 
     private EditText memergencycontactno1; 
     private EditText memergencycontactno2; 

    // private Spinner mGender; 
    // private String Gen; 

     protected DBHelper DB = new DBHelper(MainActivity.this); 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
      setSupportActionBar(toolbar); 

    0 
     } 


     @Override 
     protected void onResume() { 
      super.onResume(); 

      mSubmit = (Button)findViewById(R.id.submit); 
      mSubmit.setOnClickListener(this); 

      mCancel = (Button)findViewById(R.id.cancel); 
      mCancel.setOnClickListener(this); 

      mname = (EditText)findViewById(R.id.efname); 
      dob = (EditText)findViewById(R.id.dob); 

      mUsername = (EditText)findViewById(R.id.reuname); 
      mPassword = (EditText)findViewById(R.id.repass); 
      mEmail = (EditText)findViewById(R.id.eemail); 
      mphone=(EditText)findViewById(R.id.pphoneno); 
      maddress=(EditText)findViewById(R.id.paddress); 
      mbloodgroup=(EditText)findViewById(R.id.pbldgrp); 
      memergencycontactno1=(EditText)findViewById(R.id.pemc1); 
      memergencycontactno2=(EditText)findViewById(R.id.pemc2); 

      //  mGender = (Spinner)findViewById(R.id.spinner1); 

      // Spinner method to read the on selected value 
      /* ArrayAdapter<State> spinnerArrayAdapter = new ArrayAdapter<State>(this, 
        android.R.layout.simple_spinner_item, new State[] { 
        new State("Male"), 
        new State("Female")}); 
      mGender.setAdapter(spinnerArrayAdapter); 
      mGender.setOnItemSelectedListener(this);*/ 
     } 

     @Override 
     public void onClick(View v) { 

      switch (v.getId()) { 

       case R.id.cancel: 
        Toast.makeText(getApplicationContext(), "registration cancelled", Toast.LENGTH_SHORT).show(); 
        break; 

       case R.id.submit: 

        if(!validateName()) 
        { 
         return; 
        } 
        if(!validateDOB()) 
        { 
         return; 
        } 
        if(!validateUserName()) 
        { 
         return; 
        } 
        if(!validatePassword()) 
        { 
         return; 
        } 
        if(!validateEmail()) 
        { 
         return; 
        } 
        if(!validatePhoneNumber()) 
        { 
         return; 
        } 
        if(!validateAddress()) 
        { 
         return; 
        } 
        if(!validateBloodGr()) 
        { 
         return; 
        } 
        if(!validateContact1()) 
        { 
         return; 
        } 
        if(!validateContact2()) 
        { 
         return; 
        } 

        addEntry(mname.getText().toString(), dob.getText().toString(), mUsername.getText().toString(), mPassword.getText().toString(), 
          mEmail.getText().toString(), mphone.getText().toString(),maddress.getText().toString(),mbloodgroup.getText().toString(), 
          memergencycontactno1.getText().toString(),memergencycontactno2.getText().toString()); 
        Toast.makeText(getApplicationContext(), "registration sucess", Toast.LENGTH_SHORT).show(); 
        finish(); 
        //   String fname = mname.getText().toString(); 
        /*String dofb = dob.getText().toString(); 

        String uname = mUsername.getText().toString(); 
        String pass = mPassword.getText().toString(); 
        String email = mEmail.getText().toString(); 
        String PhoneNo = mphone.getText().toString(); 
        String Address=maddress.getText().toString(); 
        String BloodGroup=mbloodgroup.getText().toString(); 
        String EmergencyContactNo1=memergencycontactno1.getText().toString(); 
        String EmergencyContactNo2=memergencycontactno2.getText().toString(); 
    */ 
        /* boolean invalid = false; 

        if (fname.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Enter your Firstname", Toast.LENGTH_SHORT).show(); 
        } else if (dofb.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Please enter your Lastname", Toast.LENGTH_SHORT).show(); 
        } else if (uname.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Please enter your Username", Toast.LENGTH_SHORT).show(); 
        } else if (pass.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Please enter your Password", Toast.LENGTH_SHORT).show(); 

        } else if (email.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Please enter your Email ID", Toast.LENGTH_SHORT).show(); 
        } else if (PhoneNo.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Please enter your phone number", Toast.LENGTH_SHORT).show(); 

        } 
        else if (Address.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Please enter your Address", Toast.LENGTH_SHORT).show(); 
        } 
        else if (BloodGroup.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Please enter your BloodGroup", Toast.LENGTH_SHORT).show(); 
        } 
        else if (EmergencyContactNo1.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Please enter your EmergencyContactNo1", Toast.LENGTH_SHORT).show(); 
        } 
        else if (EmergencyContactNo2.equals("")) { 
         invalid = true; 
         Toast.makeText(getApplicationContext(), "Please enter your EmergencyContactNo2", Toast.LENGTH_SHORT).show(); 
        } 
        else if (invalid == false) {*/ 

        //finish(); 
       /*  } 

        break;*/ 

      } 

     } 
     private boolean validateName() { 
      if (mname.getText().toString().trim().isEmpty()) { 
       try { 
        mname.setError("Enter Your Name"); 
       } 
       catch (Exception e) 
       {} 
       requestFocus(mname); 
       return false; 
      } 
      return true; 
     } 

     private boolean validateDOB() { 
      if (dob.getText().toString().trim().isEmpty()) { 
       try { 
        dob.setError("Enter Your Date of Birth"); 
       } 
       catch (Exception e) 
       {} 
       requestFocus(dob); 
       return false; 
      } 
      return true; 
     } 

     private boolean validateUserName() { 
      if (mUsername.getText().toString().trim().isEmpty()) { 
       try { 
        mUsername.setError("Enter User Name"); 
       } 
       catch (Exception e) 
       {} 
       requestFocus(mUsername); 
       return false; 
      } 
      return true; 

    } 

    private boolean validateAddress() { 
     if (maddress.getText().toString().trim().isEmpty()) { 
      try { 
       maddress.setError("Enter Address"); 
      } 
      catch (Exception e) 
      {} 
      requestFocus(maddress); 
      return false; 
     } 
     return true; 
    } 

    private boolean validateContact1() { 
     if (memergencycontactno1.getText().toString().trim().isEmpty()) { 
      try { 
       memergencycontactno1.setError("Enter Contact Number"); 
      } 
      catch (Exception e) 
      {} 
      requestFocus(memergencycontactno1); 
      return false; 
     } 
     return true; 
    } 

    private boolean validateContact2() { 
     if (memergencycontactno2.getText().toString().trim().isEmpty()) { 
      try { 
       memergencycontactno2.setError("Enter Contact Number"); 
      } 
      catch (Exception e) 
      {} 
      requestFocus(memergencycontactno2); 
      return false; 
     } 
     return true; 
    } 

    private boolean validateBloodGr() { 
     if (mbloodgroup.getText().toString().trim().isEmpty()) { 
      try { 
       mbloodgroup.setError("Enter Your Blood group"); 
      } 
      catch (Exception e) 
      {} 
      requestFocus(mbloodgroup); 
      return false; 
     } 
     return true; 
    } 
    private boolean validatePhoneNumber() { 
     if (mphone.getText().toString().trim().isEmpty()) { 
      try { 
       mphone.setError("Enter Your phone number"); 
       if (mphone.length()!=10) 
        Toast.makeText(getApplicationContext(), "Please enter your valid 10 digit phone number", Toast.LENGTH_SHORT).show(); 

       } 
      catch (Exception e) 
      {} 
      requestFocus(mphone); 
      return false; 
     } 

      return true; 
    } 

    private boolean validatePassword() { 
     if (mPassword.getText().toString().trim().isEmpty()) { 
      try { 
       mPassword.setError("Enter Your Password"); 
      } catch (Exception e) { 
      } 
      requestFocus(mPassword); 
      return false; 
     } 

     return true; 
    } 

    private boolean validateEmail() { 
     String email = mEmail.getText().toString().trim(); 
     if (email.isEmpty() || !isValidEmail(email)) { 
      try { 
       mEmail.setError("Invalid email id"); 
      } 
      catch (Exception e) 
      {} 
      requestFocus(mEmail); 
      return false; 
     } 

     return true; 
    } 
    private boolean validatergencycontactno1() { 
     if (mphone.getText().toString().trim().isEmpty()) { 
      try { 
       memergencycontactno1.setError("Enter Your phone number"); 
       if (memergencycontactno1.length()!=10) 
        Toast.makeText(getApplicationContext(), "Please enter your valid 10 digit emergencycontactno1", Toast.LENGTH_SHORT).show(); 

      } 
      catch (Exception e) 
      {} 
      requestFocus(mphone); 
      return false; 
     } 

     return true; 
    } 
    private boolean validatebloodgroup(){ 

     return true; 
    } 
    private boolean validatergencycontactno2() { 
     if (mphone.getText().toString().trim().isEmpty()) { 
      try { 
       memergencycontactno2.setError("Enter Your phone number"); 
       if (memergencycontactno2.length()!=10) 
        Toast.makeText(getApplicationContext(), "Please enter your valid 10 digit emergencycontactno2", Toast.LENGTH_SHORT).show(); 

      } 
      catch (Exception e) 
      {} 
      requestFocus(mphone); 
      return false; 
     } 

     return true; 
    } 

    private static boolean isValidEmail(String email) { 
     return !TextUtils.isEmpty(email) && android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches(); 
    } 

    private void requestFocus(View view) { 
     if (view.requestFocus()) { 
      getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
     } 
    } 


    public void onDestroy() 
    { 
     super.onDestroy(); 
     DB.close(); 
    } 



    private void addEntry(String name, String dob, String uname, String pass, String email, String phoneno, String addr, 
          String bloodgr, String contact1, String contact2) 
    { 

     SQLiteDatabase db = DB.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put("name", name); 
     values.put("dob", dob); 
     values.put("username", uname); 
     values.put("password", pass); 
     values.put("email", email); 
     values.put("phoneno", phoneno); 
     values.put("address", addr); 
     values.put("bloodgroup", bloodgr); 
     values.put("econtact1", contact1); 
     values.put("econtact2", contact2); 

     try 
     { 
      db.insert(DBHelper.DATABASE_TABLE_NAME, null, values); 

      Toast.makeText(getApplicationContext(), "your details submitted Successfully...", Toast.LENGTH_SHORT).show(); 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 

content_main.xml:- 
<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 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_marginBottom="10dp" android:paddingTop="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:layout_weight="2" android:layout_height="match_parent" android:layout_width="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.example.uniqval.registration.MainActivity" 
    tools:showIn="@layout/activity_main"> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:orientation="vertical"> 
     <LinearLayout 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      android:orientation="vertical"> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent" 
       android:id="@+id/til"><EditText 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent" 
       android:id="@+id/efname" 
       android:hint="Name"/> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent"> 
       <EditText 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/dob" 
        android:hint="Date of Birth"/> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent"> 
       <EditText 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/reuname" 
        android:hint="Username"/> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent"> 
       <EditText 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/repass" 
        android:hint="Password" 
        android:inputType="textPassword"/> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent"> 
       <EditText android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/eemail" 
        android:hint="Email"/> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent"> 
       <EditText android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/pphoneno" 
        android:hint="Phone No" 
        android:inputType="number"/> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent"> 
       <EditText 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/paddress" 
        android:hint="Address"/> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent" 
       > 
       <EditText 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/pbldgrp" 
        android:hint="Blood Group"/> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent"> 
       <EditText 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/pemc1" 
        android:hint="Emergency Contact No1" 
        android:inputType="number"/> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent"> 
       <EditText 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/pemc2" 
        android:hint="Emergency Contact No2" 
        android:inputType="number"/> 
      </android.support.design.widget.TextInputLayout> 
     </LinearLayout> 
    </LinearLayout> 
</ScrollView> 
activity+_main.xml:- 
<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 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:fitsSystemWindows="true" 
    tools:context="com.example.uniqval.registration.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_main" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_dialog_email" /> 
    <LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/relativeLayout1" android:weightSum="2" android:layout_gravity="bottom"> 
    <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/round" android:id="@+id/submit" android:layout_marginRight="5dp" android:layout_marginLeft="5dp" android:layout_weight="1" android:text="Submit"/> 



    <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/round" android:id="@+id/cancel" android:layout_weight="1" android:text="Cancel" android:layout_toRightOf="@id/submit"/> 
    </LinearLayout> 
    </android.support.design.widget.CoordinatorLayout> 
+0

あなたはスピナーやラジオボタングループを使用していない理由があります。ユーザーが入力して血液型を検証させるのはちょっと面倒です。また、生年月日にdatepickerを使用すると、検証する必要はありません。 – drulabs

答えて

0
XMLで

<EditText 
     android:id="@+id/edit_blood_group" 
     style="@style/edit_text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/msg_blood_group" 
     android:maxLength="3" 
     android:digits="aboABO+-"/> 
検証コードで

:のstrings.xml

あるいは
<string-array name="blood_groups"> 
     <item>O+</item> 
     <item>O-</item> 
     <item>A+</item> 
     <item>A-</item> 
     <item>B+</item> 
     <item>B-</item> 
     <item>AB+</item> 
     <item>AB-</item> 
    </string-array> 

public static boolean isBloodGroupValid(String bloodGroup, Context context){ 
     if(bloodGroup != null) { 
      String[] bloodGroups = context.getResources().getStringArray(R.array.blood_groups); 
      int len = bloodGroups.length; 
      for (int i = 0; i < len; i++) { 
       if(bloodGroup.equalsIgnoreCase(bloodGroups[i])) 
        return true; 
      } 
     }return false; 
    } 

、また前とスピナーを定義することができ配列からアイテムを取り込み、誰もそれがないようにする無効な値を入力できます。

例、年齢は18〜24歳の間にあるかどうかを確認するには:

public static boolean isDOBInRange(String dateStr) { 
     try { 
      Calendar calMin = Calendar.getInstance(); 
      calMin.add(Calendar.YEAR, -Constants.MAX_AGE_LIMIT); //24 
      Date dateStart = calMin.getTime(); 

      Calendar calMax = Calendar.getInstance(); 
      calMax.add(Calendar.YEAR, -Constants.MIN_AGE_LIMIT); //18 
      Date dateEnd = calMax.getTime(); 

      DateFormat format = new SimpleDateFormat("dd-MM-yyyy"); 
      Date date = format.parse(dateStr); 

      if (date != null && dateStart != null && dateEnd != null) { 
       if (date.after(dateStart) && date.before(dateEnd)) { 
        return true; 
       } else { 
        return false; 
       } 
      } 
      return false; 
     } catch (Exception e) { 
      return false; 
     } 
    } 

編集した日付形式に応じて&年齢制限。