登录屏幕问题和数据验证

时间:2014-08-27 16:09:00

标签: android android-intent android-activity

更新版本我现在的问题是我的登录按钮在我按下它时没有做任何事情,而且我希望能够在我的登录屏幕上验证是否创建了一个帐户我的注册活动并访问其信息并处理到我的主要课程

我的登录屏幕

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();
                }
            }

        }

2 个答案:

答案 0 :(得分:0)

     btnLogin.setOnClickListener(new OnClickListener() {

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

    });

答案 1 :(得分:0)

除非我不理解你在做什么,否则我会将你的点击监听器移动到onCreate,然后用你的值调用login onClick。因此,将其移至onCreate,然后以登录(String username,String password)方法处理数据。未经测试但将此类内容移至onCreate并从Login方法中删除侦听器

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

});
相关问题