1

When i press back button on my home screen to exit from my app its not happening. It is going in a loop with my login window so how can i exit from my app??? m new to android here is my home screen code

public class Home extends Activity implements OnClickListener { Button btnLinkToRegister; Button btnLinkTologin; Button btnLinkToCompanyRegister; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome); btnLinkToRegister = (Button) findViewById(R.id.btnLinkToRegister); btnLinkToCompanyRegister=(Button)findViewById(R.id.btnLinkToCompanyRegister); btnLinkTologin=(Button) findViewById(R.id.btnLinkTologin); btnLinkToRegister.setOnClickListener(this); btnLinkTologin.setOnClickListener(this); btnLinkToCompanyRegister.setOnClickListener(this); } public void onClick(View v) { switch(v.getId()) { case R.id.btnLinkToRegister: Intent i = new Intent(getBaseContext(), Registration.class); startActivity(i); break; case R.id.btnLinkTologin: Intent j = new Intent(getBaseContext(), Login.class); startActivity(j); break; case R.id.btnLinkToCompanyRegister: Intent k = new Intent(getApplicationContext(), CompanyRegister.class); startActivity(k); } } } 

here is login activity

public class Login extends Activity implements OnClickListener { Button mLogin; Button mRegister; EditText muname; EditText mpassword; DBHelper DB = null; public String status=""; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mRegister = (Button)findViewById(R.id.register); mRegister.setOnClickListener(this); mLogin = (Button)findViewById(R.id.login); mLogin.setOnClickListener(this); } public void onClick(View v) { switch(v.getId()) { case R.id.register: Intent i = new Intent(getBaseContext(), Registration.class); startActivity(i); break; case R.id.login: muname = (EditText)findViewById(R.id.Ledituname); mpassword = (EditText)findViewById(R.id.Leditpw); String username = muname.getText().toString(); String password = mpassword.getText().toString(); if(username.equals("") || username == null) { Toast.makeText(getApplicationContext(), "Please enter User Name", Toast.LENGTH_SHORT).show(); } else if(password.equals("") || password == null) { Toast.makeText(getApplicationContext(), "Please enter your Password", Toast.LENGTH_SHORT).show(); } else { boolean validLogin = validateLogin(username, password, getApplicationContext()); if(validLogin) { if(status.equals("s")) { Intent in = new Intent(getBaseContext(), JSHomePage.class); in.putExtra("UserName", muname.getText().toString()); startActivity(in); } else if(status.equals("c")) { Intent in = new Intent(getBaseContext(), CompView.class); in.putExtra("UserName", muname.getText().toString()); startActivity(in);} } } break; } } private boolean validateLogin(String username, String password, Context baseContext) { DB = new DBHelper(getBaseContext()); SQLiteDatabase db = DB.getReadableDatabase(); String[] columns = {"_id","status"}; String selection = "username=? AND password=?"; String[] selectionArgs = {username,password}; Cursor cursor = null; try{ cursor = db.query(DBHelper.Login_Table, columns, selection, selectionArgs, null, null, null); startManagingCursor(cursor); } catch(Exception e) { e.printStackTrace(); } int numberOfRows = cursor.getCount(); if(numberOfRows <= 0) { Toast.makeText(getApplicationContext(), "User Name and Password miss match..\nPlease Try Again", Toast.LENGTH_LONG).show(); Intent intent = new Intent(getBaseContext(), Login.class); startActivity(intent); return false; } cursor.moveToNext(); status = cursor.getString(cursor.getColumnIndex("status")); startManagingCursor(cursor); return true; } public void onBackPressed() { Intent i = new Intent(Login.this, Home.class); startActivity(i); } public void onDestroy() { super.onDestroy(); DB.close(); } } 
1
  • Please post your login Activity. Commented Jul 4, 2012 at 20:32

1 Answer 1

1

I guess you try to achieve something that look like that :

HomeActivity -> buttonClicked -> LoginActivity -> BackPressed -> HomeActivity -> BackPressed -> Exit your app

In your case, removing the onBackPressed overrided method should do the trick ( Android manage navigation between activities with the back key automaticaly ). Your loop probably come from the call to startActivity wich add a new activity to the stack rather than destacking. And you probably need to call for super if you override onBackPressed(), not sure thought.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.