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