登录/注册问题

时间:2014-08-11 21:22:49

标签: android android-activity

*更新*仍然有问题,如果你看到任何错误请告诉我,我想把我的logcat但我无法访问它由于错误.......我遇到了问题我的登录和注册机制。我可能做错了什么,但当我尝试测试登录时,我的应用程序崩溃并显示消息“......突然停止了。”味精。此外,我的注册类的textview没有响应。有人可以帮帮我吗?

我知道可能存在很多错误,但要善待我这是新手:) 如果有人慷慨或只是无聊并想亲自帮我解决问题,请留下您的电子邮件

以下是我的登录类的代码:

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

    setContentView(R.layout.login);

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

    // Listening to register new account link
    registerScreen.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // Switching to Register screen

            Intent i = new Intent(getApplicationContext(), SignUp.class);
            startActivity(i);




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

    // Get The Reference Of Buttons
    btnSignIn = (Button) findViewById(R.id.btnLogin);


    }
// Methods to handleClick Event of Sign In Button
public void signIn(View V) {
    try{
    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);

    Button btnSignIn = (Button) dialog.findViewById(R.id.btnLogin);
    }catch(Exception e){
           Log.e("tag", e.getMessage());
        }
    // Set On ClickListener
    btnSignIn.setOnClickListener(new View.OnClickListener() {


        public void onClick(View v) {
            // get The User name and Password

            String username = loginUsername.getText().toString();
            String password = loginPassword.getText().toString();

            // fetch the Password form database for respective user name
            String storedPassword = loginDataBaseAdapter
                    .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();


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

    dialog.show();
            }       
}

@Override
public void startActivity(Intent intent) {
    // TODO Auto-generated method stub
    try{
    super.startActivity(intent);
    Intent mainpage = new Intent(LoginScreen.this, MainPage.class);
    startActivity(mainpage);
    finish();
    }catch(Exception e){
           Log.e("tag", e.getMessage());
        }


    }


@Override
protected void onDestroy() {
    try{
        super.onDestroy();
    // Close The Database
    loginDataBaseAdapter.close();

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

我的注册课程

@Override
protected void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    // Set View to register.xml
    setContentView(R.layout.signup);

    TextView loginScreen = (TextView) findViewById(R.id.link_to_login);
    // Listening to Login Screen link
    loginScreen.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
                            // Closing registration screen
            // Switching to Login Screen/closing register screen
            finish();

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

    // Get References of Views
    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);
    reg_confirmpassword = (EditText) findViewById(R.id.reg_confirmpassword);

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

    btnRegister.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            String fullname = reg_fullname.getText().toString();
            String username = reg_username.getText().toString();
            String password = reg_password.getText().toString();
            String email = reg_email.getText().toString();
            String confirmPassword = reg_confirmpassword.getText()
                    .toString();

            // check if any of the fields are vacant
            if (username.equals("") || password.equals("")
                    || confirmPassword.equals("")) {
                Toast.makeText(getApplicationContext(), "Field Vaccant",
                        Toast.LENGTH_LONG).show();
                return;
            }
            // check if both password matches
            if (!password.equals(confirmPassword)) {
                Toast.makeText(getApplicationContext(),
                        "Password does not match", Toast.LENGTH_LONG)
                        .show();
                return;
            } else {
                // Save the Data in Database
                loginDataBaseAdapter.insertEntry(username, password);
                Toast.makeText(getApplicationContext(),
                        "Account Successfully Created ", Toast.LENGTH_LONG)
                        .show();
            }

        }

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

1 个答案:

答案 0 :(得分:0)

了解代码错误的最佳方法是,将所有代码放在所有函数的块try-catch中。

try{
   //your code here
}catch(Exception e){
   Log.e("tag", e.getMessage());
}
Logcat中的

将会出现红色代码错误,#34;标记"它是一种区分错误的方法,如:

@Override
protected void onDestroy() {
    try{
       super.onDestroy();
       loginDataBaseAdapter.close();
    }catch(Exception e){
       Log.e("onDestroy - Error", e.getMessage());
    }

} 

我希望这会有所帮助......