2016-07-12 8 views
0

Ich habe eine lokale db erstellt. Wie kann ich es mit meiner App verbinden?Wie kann ich lokale db lokal mit meiner Android App verbinden?

Mit diesem public static final String LOGIN_URL = "http://localhost:8888/phpmyadmin/tbl_export.php?db=androiddb&table=androiddb&server=1&target=&single_table=TRUE#PMAURL-1:tbl_structure.php?db=androiddb&table=androiddb&server=1&target=&token=e3685a7b51239eb1312ab983d78e5a7b"; in config.java db nicht angeschlossen ist ....

Ich hoffe, dass Sie mir helfen können!

Vielen Dank im Voraus alle!

Hier sind meine .java Klassen.

LoginActivity.java:

public class LoginActivity extends AppCompatActivity implements View.OnClickListener { 

    //Defining views 
    private EditText editTextEmail; 
    private EditText editTextPassword; 
    private AppCompatButton buttonLogin; 

    //boolean variable to check user is logged in or not 
    //initially it is false 
    private boolean loggedIn = false; 

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

     //Initializing views 
     editTextEmail = (EditText) findViewById(R.id.editTextEmail); 
     editTextPassword = (EditText) findViewById(R.id.editTextPassword); 

     buttonLogin = (AppCompatButton) findViewById(R.id.buttonLogin); 

     //Adding click listener 
     buttonLogin.setOnClickListener(this); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     //In onresume fetching value from sharedpreference 
     SharedPreferences sharedPreferences = getSharedPreferences(Config.SHARED_PREF_NAME,Context.MODE_PRIVATE); 

     //Fetching the boolean value form sharedpreferences 
     loggedIn = sharedPreferences.getBoolean(Config.LOGGEDIN_SHARED_PREF, false); 

     //If we will get true 
     if(loggedIn){ 
      //We will start the Profile Activity 
      Intent intent = new Intent(LoginActivity.this, ProfileActivity.class); 
      startActivity(intent); 
     } 
    } 

    private void login(){ 
     //Getting values from edit texts 
     final String email = editTextEmail.getText().toString().trim(); 
     final String password = editTextPassword.getText().toString().trim(); 

     //Creating a string request 
     StringRequest stringRequest = new StringRequest(Request.Method.POST, Config.LOGIN_URL, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         //If we are getting success from server 
         if(response.equalsIgnoreCase(Config.LOGIN_SUCCESS)){ 
          //Creating a shared preference 
          SharedPreferences sharedPreferences = LoginActivity.this.getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE); 

          //Creating editor to store values to shared preferences 
          SharedPreferences.Editor editor = sharedPreferences.edit(); 

          //Adding values to editor 
          editor.putBoolean(Config.LOGGEDIN_SHARED_PREF, true); 
          editor.putString(Config.EMAIL_SHARED_PREF, email); 

          //Saving values to editor 
          editor.commit(); 

          //Starting profile activity 
          Intent intent = new Intent(LoginActivity.this, ProfileActivity.class); 
          startActivity(intent); 
         }else{ 
          //If the server response is not success 
          //Displaying an error message on toast 
          Toast.makeText(LoginActivity.this, "Invalid username or password", Toast.LENGTH_LONG).show(); 
         } 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         //You can handle error here if you want 
        } 
       }){ 
      @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       Map<String,String> params = new HashMap<>(); 
       //Adding parameters to request 
       params.put(Config.KEY_EMAIL, email); 
       params.put(Config.KEY_PASSWORD, password); 

       //returning parameter 
       return params; 
      } 
     }; 

     //Adding the string request to the queue 
     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
    } 

    @Override 
    public void onClick(View v) { 
     //Calling the login function 
     login(); 
    } 
} 

Config.java:

public class Config { 
    public static final String LOGIN_URL = "http://localhost:8888/phpmyadmin/tbl_export.php?db=androiddb&table=androiddb&server=1&target=&single_table=TRUE#PMAURL-1:tbl_structure.php?db=androiddb&table=androiddb&server=1&target=&token=e3685a7b51239eb1312ab983d78e5a7b"; 

    //Keys for email and password as defined in our $_POST['key'] in login.php 
    public static final String KEY_EMAIL = "email"; 
    public static final String KEY_PASSWORD = "password"; 

    //If server response is equal to this that means login is successful 
    public static final String LOGIN_SUCCESS = "success"; 

    //Keys for Sharedpreferences 
    //This would be the name of our shared preferences 
    public static final String SHARED_PREF_NAME = "myloginapp"; 

    //This would be used to store the email of current logged in user 
    public static final String EMAIL_SHARED_PREF = "email"; 

    //We will use this to store the boolean in sharedpreference to track user is loggedin or not 
    public static final String LOGGEDIN_SHARED_PREF = "loggedin"; 
} 

Antwort

0

, wenn Sie einen Emulator verwenden können Sie "localhost" mit "10.0.2.2" ersetzen. Aber wenn Sie es auf einem echten Gerät testen müssen, dann brauchen Sie ein Hosting oder Sie können sich mit Tethering verbinden.

+0

ok, jetzt versuche ich mit Emulator ... aber ich exportiere keine Datei von phpmyadmin? es ist richtig wie es mir geht? – Alberto

+0

Wenn Sie eine erfolgreiche Anfrage von Ihrem Browser machen können, dann können Sie genau dasselbe mit Android tun. Weil es nur ein "Client" :) – faruk

+0

gibt es Verbindung, weil, wenn ich auf "Login" Toast sage mich "Benutzername oder das Passwort ist nicht korrekt", aber in db ich habe ein Feld "ciccia" und ein anderes Feld "ciccia" ich don weiß nicht, warum nicht korrekt ist – Alberto

Verwandte Themen