2014-08-27 56 views
0

更新的版本我的問題現在是事實我的登錄按鈕不會做任何事情時,我按它,也我想我的登錄屏幕來驗證帳戶是否創建在我註冊活動並訪問其信息和處理,以我的主類登錄屏幕問題和數據驗證

我的登錄屏幕

public class LoginScreen extends Activity { 
private Button btnLogin; 
private TextView registerScreen; 

private LoginDataBaseAdapter dataBaseAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // setting default screen to login.xml 
    setContentView(R.layout.login); 

    registerScreen = (TextView) this.findViewById(R.id.link_to_register); 

    btnLogin = (Button) findViewById(R.id.btnLogin); 

    // create a instance of SQLite Database 
    dataBaseAdapter = new LoginDataBaseAdapter(this); 
    dataBaseAdapter.open(); 

    final Dialog dialog = new Dialog(LoginScreen.this); 
    dialog.setContentView(R.layout.login); 
    dialog.setTitle("Login"); 

    // get the References of views 
    final EditText loginUsername = (EditText) dialog 
      .findViewById(R.id.liUsername); 
    final EditText loginPassword = (EditText) dialog 
      .findViewById(R.id.liPassword); 

    btnLogin.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String username = loginUsername.getText().toString(); 
      String password = loginPassword.getText().toString(); 
      login(username, password); 

     } 

     private void login(String username, String password) { 
      // fetch the Password form database for respective user name 
      String storedPassword = dataBaseAdapter 
        .getSingleEntry(username); 

      // check if the Stored password matches with Password entered by 
      // user 
      if (password.equals(storedPassword)) { 
       Toast.makeText(LoginScreen.this, 
         "Congrats: Login Successful", Toast.LENGTH_LONG) 
         .show(); 
       dialog.dismiss(); 

       Intent i = new Intent(LoginScreen.this, MainPage.class); 
       startActivity(i); 

      } else { 
       Toast.makeText(LoginScreen.this, 
         "User Name or Password does not match", 
         Toast.LENGTH_LONG).show(); 
      } 

      // TODO Auto-generated method stub 

     } 
    }); 
    registerScreen.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      // This called whenever btnlogin is clicked: 
      startActivity(new Intent(LoginScreen.this, SignUp.class)); 

     } 

    }); 

} 

@Override 
protected void onDestroy() { 
    try { 
     super.onDestroy(); 
     dataBaseAdapter.close(); 

    } catch (Exception e) { 
     Log.e("onDestroy - Error", e.getMessage()); 
    } 

} 

}

和我的註冊類櫃面你想看到它

public class SignUp extends Activity { 
    private EditText reg_fullname, reg_username, reg_email, reg_password ; 
    private Button btnRegister; 
    private LoginDataBaseAdapter dataBaseAdapter; 
    private TextView loginScreen; 
    protected DataBaseHelper DB = new DataBaseHelper(SignUp.this); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     // Set View to register.xml 
     setContentView(R.layout.signup); 

     reg_fullname = (EditText) findViewById(R.id.reg_fullname); 
     reg_username = (EditText) findViewById(R.id.reg_username); 
     reg_email = (EditText) findViewById(R.id.reg_email); 
     reg_password = (EditText) findViewById(R.id.reg_password); 

     loginScreen = (TextView) this.findViewById(R.id.link_to_login); 
     //Listening to Login Screen Link 
     btnRegister = (Button) findViewById(R.id.btnRegister); 

     // get Instance of Database Adapter 
     dataBaseAdapter = new LoginDataBaseAdapter(this); 
     dataBaseAdapter.open(); 

     loginScreen.setOnClickListener(new OnClickListener(){ 
      @Override 
      public void onClick(View v) {  

       switch(v.getId()){ 

        case R.id.link_to_login: 
         startActivity(new Intent(SignUp.this, LoginScreen.class)); 
         finish(); 
         break; 
       } 
      } 
     }); 

     btnRegister.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       switch (v.getId()){ 

        case R.id.btnRegister: 
         // I think they have to be final to be used in the onClickListener 
         final String fullname = reg_fullname.getText().toString(); 
         final String username = reg_username.getText().toString(); 
         final String password = reg_password.getText().toString(); 
         final String email = reg_email.getText().toString(); 

         boolean invalid = false; 

         if(fullname.equals("")) 
         { 
          invalid = true; 
          Toast.makeText(getApplicationContext(), "Enter your Firstname", Toast.LENGTH_SHORT).show(); 
         } 
         else 

          if(username.equals("")) 
          { 
           invalid = true; 
           Toast.makeText(getApplicationContext(), "Please enter your Username", Toast.LENGTH_SHORT).show(); 
          } 
         else 

          if(password.equals("")) 
          { 
           invalid = true; 
           Toast.makeText(getApplicationContext(), "Please enter your Password", Toast.LENGTH_SHORT).show(); 

          } 
          else 
           if(email.equals("")) 
           { 
            invalid = true; 
            Toast.makeText(getApplicationContext(), "Please enter your Email ID", Toast.LENGTH_SHORT).show(); 
           } 
           else 
           { 

            // btnLogin.setVisibility(View.GONE); 
            Toast.makeText(getApplicationContext(), "Account Successfully Created ", Toast.LENGTH_LONG).show(); 
            Log.d("FULLNAME", fullname); 
            Log.d("PASSWORD",password); 
            Log.d("USERNAME",username); 
            Log.d("EMAIL",email); 
            Intent i=new Intent(SignUp.this,MainPage.class); 
            startActivity(i); 
            // Save the Data in Database 
            dataBaseAdapter.insertEntry(fullname, username,password,email); 

           }break; 
         } 

        } 


       }); 

      }  

      @Override 
      protected void onDestroy() { 
       // TODO Auto-generated method stub 
       try{ 
        super.onDestroy(); 
        dataBaseAdapter.close(); 
       }catch(Exception e){ 
        Log.e("onDestroy SignUp- Error", e.getMessage()); 
       } 
      } 

      private void addEntry(String fullname, String username, String password, String email) 
      { 

       SQLiteDatabase db = DB.getWritableDatabase(); 

       ContentValues values = new ContentValues(); 
       values.put("FULLNAME", fullname); 
       values.put("USERNAME", username); 
       values.put("PASSWORD", password); 
       values.put("EMAIL", email); 

       try 
       { 
        db.insert(DataBaseHelper.DATABASE_TABLE_NAME, null, values); 

        Toast.makeText(getApplicationContext(), "your details submitted Successfully...", Toast.LENGTH_SHORT).show(); 
       } 
       catch(Exception e) 
       { 
        e.printStackTrace(); 
       } 
      } 

     } 
+0

在登錄(視圖V)在你的XML你的onClick或它是如何被調用? – Zach 2014-08-27 16:36:14

+0

可能與[登錄/註冊問題]重複(http://stackoverflow.com/questions/25252645/issues-with-login-regstration) – BrainCrash 2014-08-28 01:46:05

+0

檢查:http://techblogon.com/android-login-registration-screen -with-sqlite-database-example/ – 2014-08-28 04:24:58

回答

0
 btnLogin.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      new login().execute(); 
     } 

    }); 
0

除非我不理解你在做什麼,我會點擊監聽器移動到的onCreate,然後調用登錄的onClick與你的價值觀。因此,將其移至onCreate,然後在登錄(字符串用戶名,字符串密碼)方法中處理數據。未經測試,但移動這樣的事情到的onCreate,並從登錄方法刪除偵聽

final Dialog dialog = new Dialog(LoginScreen.this); 
dialog.setContentView(R.layout.login); 
dialog.setTitle("Login"); 

// get the References of views 
final EditText loginUsername = (EditText) dialog 
     .findViewById(R.id.liUsername); 
final EditText loginPassword = (EditText) dialog 
     .findViewById(R.id.liPassword); 

btnLogin.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     String username = loginUsername.getText().toString(); 
     String password = loginPassword.getText().toString(); 

     login(username, password); 
    } 

}); 
+0

我添加並移動了你的建議,但現在當我點擊登錄按鈕「不幸的應用程序已停止」 – user3931151 2014-08-27 23:44:05