2016-04-02 23 views
0
Ben yöntemini çağırın ve ben robot gelişiminde yeni ve gerçekten kaybolmadan .. mysql sorguyu yürütmek denemeden önce giriş etkinliği boş EditText filtre yardıma ihtiyaç

uygulamadan önce .. Ben öğretici izledi Bu kayıt ve girişte iyi çalışır ancak filtreleme veya doğrulama yapılmaz. Sad Eğer eskimiş değilse veya kütüphaneler kaldırılmış olması iyi bir öğretici için beni daha iyi bir sayfanın bağlantısını verirsen çok takdir edecektir .. ben tam her fonksiyon/metot çalıştıran nasıl adımları anlamak mümkün değildi, demek. Android 1.5 kullanıyorum.giriş formu doğrulama yöntemi giriş

İşte

public class Main extends AppCompatActivity implements View.OnClickListener { 

EditText name, password; 
String Name, Password; 
Context ctx=this; 
String NAME=null, PASSWORD=null, EMAIL=null; 


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

    name = (EditText) findViewById(R.id.main_name); 
    password = (EditText) findViewById(R.id.main_password); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 
} 



public void main_register(View v){ 
    startActivity(new Intent(this,Register.class)); 
} 
public void main_login(View v){ 
    Name = name.getText().toString(); 
    Password = password.getText().toString(); 
    BackGround b = new BackGround(); 
    b.execute(Name, Password); 
} 

@Override 
public void onClick(View v) { 
    switch (v.getId()){ 
     case R.id.main_login: 

      break; 

    } 
} 

class BackGround extends AsyncTask<String, String, String> { 

    @Override 
    protected String doInBackground(String... params) { 
     String name = params[0]; 
     String password = params[1]; 
     String data=""; 
     int tmp; 

     try { 
      URL url = new URL("http://10.0.2.2/BirdBreedingManagement/scripts/login.php"); 
      String urlParams = "name="+name+"&password="+password; 

      HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
      httpURLConnection.setDoOutput(true); 
      OutputStream os = httpURLConnection.getOutputStream(); 
      os.write(urlParams.getBytes()); 
      os.flush(); 
      os.close(); 

      InputStream is = httpURLConnection.getInputStream(); 
      while((tmp=is.read())!=-1){ 
       data+= (char)tmp; 
      } 

      is.close(); 
      httpURLConnection.disconnect(); 

      return data; 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
      return "Exception: "+e.getMessage(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return "Exception: "+e.getMessage(); 
     } 
    } 

    @Override 
    protected void onPostExecute(String s) { 
     String err=null; 

     try { 
      JSONObject root = new JSONObject(s); 
      JSONObject user_data = root.getJSONObject("user_data"); 
      NAME = user_data.getString("name"); 
      PASSWORD = user_data.getString("password"); 
      EMAIL = user_data.getString("email"); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
      err = "Exception: "+e.getMessage(); 
     } 

     Intent i = new Intent(ctx, Home.class); 
     i.putExtra("name", NAME); 
     i.putExtra("password", PASSWORD); 
     i.putExtra("email", EMAIL); 
     i.putExtra("err", err); 
     startActivity(i); 

    } 
} 
yılında günlüğü kolları benim Main.java ait koddur .. Burada google ve konuları arama oldum ama android bir newbie tarafından anlaşılabilir bir çözüm bulamadık

Ve burada php script try {önceden

//$username = "jeel"; 
    //$pssword = "23456"; 


    $username = filter_input(INPUT_POST, 'name'); 
    $pssword = filter_input(INPUT_POST, 'password'); 

    if($username == ""){ 
     $results = "Invalid Entry"; 
     echo json_encode(array("user_data"=>$results)); 
    }else{ 
     $stmt = $db->prepare('SELECT * ' 
         . 'FROM users1 ' 
         . 'WHERE name = :uname AND password = :password '); 
     $stmt->bindParam(':uname', $username); 
     $stmt->bindParam(':password', $pssword); 
     $stmt->execute(); 
     $results = $stmt->fetch(PDO::FETCH_ASSOC); 

     if($results > 0){ 
      $response = array(); 
      echo json_encode(array("user_data"=>$results)); 
     } else{ 
      $results = "No Record Found"; 
      echo json_encode(array("user_data"=>$results)); 
     } 
    } 

}catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 

teşekkürler olduğunu.

cevap

0

username ve password alanlarını işaretlemeniz gerektiğinden, 0p'u çalıştırmadan önce ya da değil, verileri php'den edinebilirsiniz.

public void main_login(View v){ 
     Name = name.getText().toString(); 
     Password = password.getText().toString(); 
     if(Name==null || Password==null){ 
     // can alert the user that either one of username or the password is empty by 

     Toast.makeText(getActivity(), "Username or the Password is empty",Toast.LENGTH_LONG).show(); 
     // in here you can restart the current activity 
     startActivity(this,Main.class); 
     finish(); // to destroy the current activity 

     } 
     else{ 
     BackGround b = new BackGround(); 
     b.execute(Name, Password); 
     } 
    } 
+0

ben bu satırı work..Toast.makeText (getActivity() yapmak mümkün değildi "Kullanıcı Adı veya Şifre boş" olarak Sana kod değiştirilmiş .. Bu benim sorunu çözmek için bana yol .., Tost teşekkürler .LENGTH_LONG) .show(); ve aktiviteyi durdurmada bazı ayarlamalar. hat 'Toast.makeText içinde – fernan

+0

(getActivity(), "adı veya şifre boş" Toast.LENGTH_LONG) .show(); 'ilk parametre' bağlamı 'Toast'a iletmek için kullanılır. Eğer aracılığıyla 'context' gönderebilir' this', 'getActivity()' ve 'getApplicationContext()' cevabım gerçekten sana yardım beri benim cevap vote' 'Eğer o ealier –

+0

, sevinirim söz değil için üzgünüm' Cevap ver veya cevabımı doğru olarak kabul et. Şu anda bu sitedeki herhangi bir soruyu yayınlayamadığım için şu anki itibarımın maksimum soru limitine ulaştığımdan dolayı, geri adım atmak için saygınlığımı arttırmak için biraz acelem var :) –

0

Kasun Siyambalapitiya cevabı yapılmış bazı ayarlı beklendiği gibi kod gerçekleştirmek yapmak bana yol aşağıdaki gibi main_login(View v) yöntemini değiştirin .. ben de bir kod arıyor başkalarına paylaşmak için burada ilanıyla oldukları Kasun cevabı kendi ihtiyacına uygun olmasaydı ..

`public void main_login(View v){ 
    Name = name.getText().toString(); 
    Password = password.getText().toString(); 

    if(name.getText().length()==0){ 


     Toast.makeText(getApplicationContext(), 
       "Please Enter your name", Toast.LENGTH_LONG).show(); 

     Intent intent = getIntent(); 
     startActivity(intent); 
    }else{ 
     Intent intent = getIntent(); 
     startActivity(intent); 
     BackGround b = new BackGround(); 
     b.execute(Name, Password); 
    } 
}` 

deneyebilirsiniz ben kapatıp yeniden açtıktan uygulamanın önlemek için bitiş komutu kaldırın.