2016-07-12 147 views
0

我創建了一個本地數據庫。我怎樣才能將它連接到我的應用程序?如何在本地連接本地數據庫到我的Android應用程序?

有了這個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";在config.java分貝未連接....

我希望你能幫幫我!

謝謝各位!

這是我的.java類。

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"; 
} 

回答

0

,如果您使用的是仿真器,你可以 「localhost」 替換爲 「10.0.2.2」。但是,如果您需要在真實設備上進行測試,則需要託管或您可以與綁定進行連接。

+0

好的,現在我嘗試用模擬器...但我不會從phpmyadmin導出任何文件?我在做什麼是正確的? – Alberto

+0

如果您可以從瀏覽器發出成功請求,那麼您可以使用與android完全相同的功能。因爲它只是一個「客戶端」:) – faruk

+0

有連接,因爲當我點擊「登錄」吐司時說我「用戶名或密碼不正確」,但在數據庫中我創建了一個字段「ciccia」和另一個字段「ciccia」不知道爲什麼是不正確的 – Alberto

相關問題