2017-01-14 5 views
2

私はAndroidスタジオのプログラミングにはかなり新しいので、いくつかの問題がありました。私は、ボタンのクリックで実行される検証をしようとしている場合、それはページ上に残っている間違っているが、すべてのフィールドが入力された場合、PHPを介してwebhost上の登録情報を送信します。Androidスタジオの登録フォームのonClick検証を設定するにはどうすればいいですか?

私が望むのは、これを行う最も簡単な方法を見つけて、アプリ全体をクラッシュさせないことです。手伝ってくれてありがとう。アンドロイドスタジオから

Javaコード(それがすべてで働いていなかったので、私はボタンの実装を削除):

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Patterns; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class registracijaLastnika extends AppCompatActivity { 

EditText etName; 
EditText etSurname; 
EditText etPasswordL; 
EditText etUsernameL; 
EditText etEmailL; 
EditText etRepeatPasswordL; 
Button bRegisterL; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_registracija_lastnika); 

    etName = (EditText) findViewById(R.id.etIme); 
    etSurname = (EditText) findViewById(R.id.etPriimek); 
    etPasswordL = (EditText) findViewById(R.id.etPasswordL); 
    etUsernameL = (EditText) findViewById(R.id.etUsernameL); 
    etEmailL = (EditText) findViewById(R.id.etEmailL); 
    etRepeatPasswordL = (EditText) findViewById(R.id.etRepeatPasswordL); 
    bRegisterL = (Button) findViewById(R.id.bRegisterL); 
} 

public void regLas(View view){ 
    String type = "regLas"; 
    String ime = etName.getText().toString(); 
    String priimek = etSurname.getText().toString(); 
    String uporabnisko_ime = etUsernameL.getText().toString(); 
    String geslo = etPasswordL.getText().toString(); 
    String gesloR = etRepeatPasswordL.getText().toString(); 
    String email = etEmailL.getText().toString(); 
    validate(); 
    if(!validate()) { 
     Toast.makeText(this,"Signup has Failed",Toast.LENGTH_SHORT).show(); 
    } 
    else { 
    BackgroundWorker backgroundWorker = new BackgroundWorker(this); 
    backgroundWorker.execute(type, ime, priimek, uporabnisko_ime, geslo,  email); 
    Intent registerIntent = new Intent(registracijaLastnika.this, registracijaKavarne.class); 
    registracijaLastnika.this.startActivity(registerIntent); 
    } 
} 
public boolean validate(){ 
    boolean valid = true; 
    if(etName.length()<1 || etName.length()>32){ 
     etName.setError("Please enter valid name"); 
     valid = false; 
    } 
    if(etSurname.length()<1 || etSurname.length()>32){ 
     etSurname.setError("Please enter valid name"); 
     valid = false; 
    } 
    if(etEmailL.length()<1 || !Patterns.EMAIL_ADDRESS.matcher((CharSequence) etEmailL).matches()){ 
     etEmailL.setError("Please enter valid email address"); 
     valid = false; 
    } 
    if(etPasswordL.length()<1){ 
     etPasswordL.setError("Please enter valid password"); 
     valid = false; 
    } 
    if(etRepeatPasswordL.length()<1){ 
     etRepeatPasswordL.setError("Please enter valid password"); 
     valid = false; 
    } 
    if(!etRepeatPasswordL.equals(etPasswordL)){ 
     etPasswordL.setError("Passwords don't match!"); 
     valid = false; 
    } 
    if(etUsernameL.length()<1 || etUsernameL.length()>32){ 
     etUsernameL.setError("Please enter valid name"); 
     valid = false; 
    } 
    return valid; 
} 

}

を私はボタンとonClickListenerを実装しようとしましたが、検証は作業本当のアプリケーションを停止した時はいつでも。

ここにもアクティビティのXMLファイルがあります。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_registracija_lastnika" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.lipic.coffeeaddict.registracijaLastnika"> 

<TextView 
    android:text="@string/personal_information" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/tNaslov2L" 
    android:layout_marginTop="21dp" 
    android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
    android:layout_below="@+id/tNaslovL" 
    android:layout_alignParentStart="true" 
    android:textStyle="normal|bold" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:ems="10" 
    android:id="@+id/etUsernameL" 
    android:hint="@string/username" 
    android:layout_marginTop="11dp" 
    android:layout_below="@+id/etPriimek" 
    android:layout_alignParentStart="true" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textEmailAddress" 
    android:ems="10" 
    android:id="@+id/etEmailL" 
    android:hint="@string/email" 
    android:layout_marginTop="13dp" 
    android:layout_below="@+id/etRepeatPasswordL" 
    android:layout_alignParentStart="true" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:ems="10" 
    android:id="@+id/etPriimek" 
    android:hint="@string/Surname" 
    android:layout_marginTop="7dp" 
    android:layout_below="@+id/etIme" 
    android:layout_alignParentStart="true" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPassword" 
    android:ems="10" 
    android:id="@+id/etRepeatPasswordL" 
    android:hint="@string/Rpassword" 
    android:layout_marginTop="10dp" 
    android:layout_below="@+id/etPasswordL" 
    android:layout_alignParentStart="true" /> 

<Button 
    android:text="@string/proceed_to_caffeteria_information" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/bRegisterL" 
    android:onClick="regLas" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentEnd="true" /> 

<EditText 
    android:layout_width="70dp" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:ems="10" 
    android:id="@+id/etIme" 
    android:layout_marginTop="12dp" 
    android:hint="@string/Name" 
    android:layout_below="@+id/tNaslov2L" 
    android:layout_alignParentStart="true" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:id="@+id/etPasswordL" 
    android:hint="@string/password" 
    android:layout_marginTop="13dp" 
    android:inputType="textPassword" 
    android:layout_below="@+id/etUsernameL" 
    android:layout_alignParentStart="true" /> 

<TextView 
    android:text="@string/owner_registration" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/tNaslovL" 
    android:textAppearance="@style/TextAppearance.AppCompat.Display1" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

+1

のため、これらの機能を使用してください –

答えて

1

私はあなたがPHPの世界から来たと思いますが、Androidのは本当に異なっています。あなたはそれがどのように仕事であるか知る必要があります。ここではレイアウトからのビューを取得し、これらのビューで直接検証を試みます。

リアルタイム検証が必要な場合は、各EditTextに対してaddTextChangedListenerを追加する必要がありますが、簡単な方法が必要な場合は、SnackBarにエラーを表示できるようにした後に、それぞれのeditText.getText()を検証する必要があります。

そして、あなたはPHP経由に関する情報を送信したい理由を私は理解していない、それは、Androidと複雑だ、あなたは

それはRESTを使用する方が簡単ですか...など、いくつかのネイティブの変換を行う、ブラウザによって渡す必要がありますSOAP、またはあなたは適切な技術を持っていません。 なぜPHPが必要ですか?

私にとって、あなたが探しているのは、Cordova、JQuery MobileとIonicです。

0

アプリの停止作業の後に示すことlogcatであなたのlogcatやエラーをポスト検証

public static boolean EmailValidator(CharSequence target) { 
     if (target == null) { 
      return false; 
     } else { 
      return Patterns.EMAIL_ADDRESS.matcher(target).matches(); 
     } 
    } 

    public static boolean PhoneNumberValidator(CharSequence target) { 
     if (target == null) { 
      return false; 
     } else { 
      return Patterns.PHONE.matcher(target).matches(); 
     } 
    } 

    public static boolean NameValidator(String _Name) { 
     Pattern pattern; 
     Matcher matcher; 
     final String Name = "^[a-zA-Z\\\\s]+"; 
     pattern = Pattern.compile(Name); 
     matcher = pattern.matcher(_Name); 
     return matcher.matches(); 
    } 

    public static boolean PasswordValidator(String Password) { 
     if (Password.length() < 5) 
      return false; 
     else 
      return true; 
    } 
関連する問題