2016-03-29 2 views
-1

Я пытаюсь получить значение, которое пользователь вводит в переменные userNameVar и passwordVar, а затем сравнивает их со значениями, хранящимися в моей базе данных. Однако, когда я вхожу в детали, которые так же, как то, что я хранится в моей базе данных, я получаю следующее сообщение:Android - вход в систему с базой mySql

Error message

Вот мой Логин код класса

public class Login extends AppCompatActivity implements View.OnClickListener { 
    private EditText usernameField; 
    private EditText passwordField; 
    private static Button login_btn; 
    TextView register_link; 
    String userNameVar = ""; 
    String passwordVar = ""; 

    private ProgressDialog pDialog; 
    JSONParser jParser = new JSONParser(); 
    User userObj; 

    DatabaseUserList databaseUserList = new DatabaseUserList(); 


    private static final String TAG_SUCCESSFUL = "Successful"; 


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

     login_btn = (Button) findViewById(R.id.login_button); 

     usernameField = (EditText) findViewById(R.id.etUsername); 
     passwordField = (EditText) findViewById(R.id.etPassword); 


     //starts to listen for clicks on this button 
     login_btn.setOnClickListener(this); 


     register_link = (TextView) findViewById(R.id.register_link); 
     register_link.setOnClickListener(this); 

    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.login_button: 
       //null object reference problem here 
       Log.d("Username and password",   

       userNameVar = usernameField.getText().toString(); 
       passwordVar = passwordField.getText().toString(); 
       usernameField.getText().toString()); 

       validateUser(userNameVar, passwordVar); 
       break; 

     } 

    } 




    private void validateUser (String username, String password) 
    { 
     new LogtheuserIn().execute(); 
    } 

    private void resultsofloginAttmempt(User u) 
    { 
     if(u != null) 
     { 
      Log.d("User", userObj.toString() + "User must have logged in successfully"); 

     } 
    } 

    private void userLoggedIn() 
    { 
     Intent intent = new Intent(this, FirstPage.class); 
     //User has to implement serializable 
     intent.putExtra("Userisin", userObj); 
     startActivity(intent); 

    } 



    public class LogtheuserIn extends AsyncTask<String,String,String> 
    { 
     @Override 
     protected void onPreExecute() 
     { 
      Log.d("onPrexecute", "on the preExecutePart"); 
      pDialog = new ProgressDialog(Login.this); 
      pDialog.setMessage("Loading users"); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(false); 
      pDialog.show(); 

     } 

     @Override 
     protected String doInBackground(String... args) 
     { 
      List<NameValuePair> arguements = new ArrayList<NameValuePair>(); 
      try{ 
       Log.d("This is the username ", "and password taken from the input fields"); 

       String loginDetails = ServerConnection.SERVER_ADDRESS + "login.php?userName=" + userNameVar + "?password" + passwordVar; 

       JSONObject jObject = jParser.makeHttpRequest(loginDetails, "GET", arguements); 

       Log.d("All users", jObject.toString()); 
       int success = jObject.getInt(TAG_SUCCESSFUL); 


      } catch (Exception e) { 
       pDialog.dismiss(); 

       runOnUiThread(new Runnable() 
       { 
        public void run() 
        { 
         Toast.makeText(getApplicationContext(), "Problem with the server", 
         Toast.LENGTH_SHORT).show(); 
        } 
       }); 

      } 

      return null; 
     } 

     protected void onPostExecute(String dismissable) 
     { 
      //Dismiss the dialogue after we have 
      //gotten the user(s) 
      pDialog.dismiss(); 

      Login.this.runOnUiThread(
        new Runnable() { 
         public void run() 
         { 
          resultsofloginAttmempt(userObj); 
          Log.d("Array details", databaseUserList.getListOfUsers().toString()); 


         } 
        } 
      ); 
     } 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_login, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

} 
+0

Сообщение об ошибке говорит NPE в строке 69 –

+0

Возможный дубликат [Что такое Исключение Null Указатель и как его исправить?] (Http://stackoverflow.com/questions/218384/what-is-a- null-pointer-exception-and-how-do-i-fix-it) –

+0

Да, я знаю это, но я не могу понять, почему он говорит об этом, поскольку я передаю значения этим переменным. – sh21

ответ

0

Перепроверьте findViewById(R.id.whatisyourrealid);, потому что он возвращает null.

Смежные вопросы