2016-01-21 111 views
0
@Override 
    public void onClick(View v) { 
     if(v == buttonRegister){ 
      registerUser(); 
      } 
    } 
private void registerUser() { 
    ?*some code here*/ 
} 
private void register(String name, String email, String password, String phone) { 
    String urlSuffix = "?name="+name+"&email="+email+"&password="+password+"&phone="+phone; 
    class RegisterUser extends AsyncTask<String, Void, String> { 
     ProgressDialog loading; 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      loading = ProgressDialog.show(SignUpActivity.this, "Please Wait",null, true, true); 
     } 
     @Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      loading.dismiss(); 
      Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show(); 


     } 

     @Override 
     protected String doInBackground(String... params) { 
      String s = params[0]; 
      BufferedReader bufferedReader = null; 
      try { 
       URL url = new URL(REGISTER_URL+s); 
       HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
       bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream())); 

       String result; 

       result = bufferedReader.readLine(); 

       return result; 
      }catch(Exception e){ 
       return null; 
      } 
     } 
    } 

    RegisterUser ru = new RegisterUser(); 
    ru.execute(urlSuffix); 
} 
+0

我需要用户有其他scucessfully注册后,如果用户显示一些错误 – user000

回答

1
If you moved from login activity to this screen then you can use: 

@Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      loading.dismiss(); 
      Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show(); 
      this.finish(); 


     } 


Otherwise you can start new activity like : 

@Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      loading.dismiss(); 
      Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show(); 
      startActivity(new Intent(SignUpActivity.this,LoginActivity.class)); 
      this.finish(); 

     } 
+0

回去登录活动达到相同的结果电子邮件ID已经存在意味着它不应该导航到登录活动。它应该具有相同的标志性。如果用户是新的应导航到登录活动 – user000

+0

任何人可以建议此 – user000

+0

@ user000在开始意图之前添加条件。 –

0

这完全取决于你的REST API,什么它返回,如果你可以从发布API JSON结果可以有很大帮助。 如果它返回象“电子邮件已存在”消息,那么你可以检查邮件中存在的字符串,并做相应

更改您的onPostExecute方法:

@Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      loading.dismiss(); 
      Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show(); 
      if(s.has("email already exists")){ 
       //Show some error 
      }else if(s.has("Registration successfull")) 
      startActivity(new Intent(SignUpActivity.this,LoginActivity.class)); 
      this.finish(); 

     } 
+0

if($ row> 0) { echo'email already exists'; (''。'$',''''。'','''')。 “。$ _ GET ['password']。”','“。$ _ GET ['email']。'','”。$ _ GET ['phone']。'')“; if($ insert) { echo'successfully registered'; } – user000

+0

请发布您的json结果,而不是服务器端代码。 – 1binary0

0
if($_SERVER['REQUEST_METHOD']=='GET'){ 
$name = $_GET['name']; 
$password = $_GET['password']; 
$email = $_GET['email']; 
$phone = $_GET['phone']; 

if($name == '' || $password == '' || $email == '' || $phone == '') 
    { 
    echo 'please fill all values'; 
     } 
     else{ 
     $check =$db->query("SELECT * FROM register WHERE email='".$_GET['email']."'"; 
    $row=$check->num_rows; 
     if($row > 0) 
{ 
       echo 'email already exist'; 
      } 
     else 
     { 
      $insert = $db->query("INSERT INTO register(`name`,`password`,`email`,`phone`) VALUES('".$_GET['name']."','".$_GET['password']."','".$_GET['email']."','".$_GET['phone']."')"; 
      if($insert) 
    { 
    echo 'successfully registered'; 

} 其他 { echo'oops!请再试一次!'; } } } } else { echo“Error”; }

0

您应该使用单个活动与LoginFragmentRegisterFragment。 如果用户从LoginFragment登录,那么他可以直接转到新的活动。 如果用户选择Register,那么您需要在堆栈上添加新的碎片并查看他是否完成注册。如果用户完成注册,则可以弹出backstack,然后登录LoginPage

只是为了登录和Registraion我不会建议使用两个不同的活动时,您可以使用1 Activity2 Fragment.

相关问题