2016-07-12 6 views
0

私はローカルデータベースを作成しました。私はそれを私のアプリにどのように接続できますか?ローカルデータベースをAndroidアプリにローカルで接続するにはどうすればよいですか?

config.java DBにこの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";が接続されていないと....

私はあなたが私を助けることができることを願っています!

皆様、ありがとうございます!

ここに私の.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

あなたは "10.0.2.2" で "localhost" を置き換えることができエミュレータを使用している場合。しかし、あなたが実際のデバイスでそれをテストする必要がある場合は、あなたがホストまたはUテザリングと接続する必要があります。

+0

私はエミュレータで試してみましたが、phpmyadminからファイルをエクスポートしていませんか?私はどうしているのですか? – Alberto

+0

ブラウザからのリクエストが成功すれば、アンドロイドでも同じことができます。それはちょうど "クライアント"のため:) – faruk

+0

私は "ログイン"トーストをクリックすると私は "ユーザー名またはパスワードが正しくない"と言うが、dbで私は "ciccia"フィールドと "ciccia"なぜ正しくないのか分かりません – Alberto

関連する問題