2014-07-22 23 views
-1

我有活动'A',活动'B',活动'C',活动'D',活动'E',活动'E'。我想退出Activity点击onBackPressed()。当我运行应用程序时,它转到活动“A”它不会退出应用程序。我怎样才能实现这一点。如何在Android中使用onBackPressed()?

这里是我的代码

public class MainActivity extends Activity { 

    TableLayout table_layout; 
    EditText firstname_et, lastname_et; 
    Button addmem_btn; 

    DatabaseHelper databaseHelper = new DatabaseHelper(this); 
    protected SQLiteDatabase db; 

    ProgressDialog PD; 
    ImageView imgButtonBack; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.performance_report); 

     table_layout = (TableLayout) findViewById(R.id.tableLayout_PerformanceReport); 


     //ImageView imgButtonBack; 
     imgButtonBack = (ImageView)findViewById(R.id.imagBackButton); 
     imgButtonBack.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent i = new Intent(MainActivity.this, Employee_List.class); 
       i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(i); 
       //finish(); 
      } 
     }); 


    } 

} 
    @Override 
    public void onBackPressed() 
    { 
     AlertDialog.Builder alertbox = new AlertDialog.Builder(MainActivity.this); 

     alertbox.setTitle("Do you wish to exit ?"); 
     alertbox.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface arg0, int arg1) { 
       // finish used for destroyed activity 
       finish(); 
      } 
     }); 

     alertbox.setNegativeButton("No", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface arg0, int arg1) { 
        // Nothing will be happened when clicked on no button 
        // of Dialog  
      } 
     }); 

     alertbox.show(); 
    } 
} 

感谢欣赏。

+0

添加到交易这个.. getFragmentManager()调用BeginTransaction()加(.....,.....)addToBackStack()。 .commit()这将导致返回到最后一个交易,如果它的第一个它将退出希望它帮助 –

+0

@Itzik萨马拉:感谢回复,对不起,但我没有得到你。 – jvd

+0

[Android - onBackPressed()not working]可能的重复](http://stackoverflow.com/questions/3558385/android-onbackpressed-not-working) – Gattsu

回答

3

可以在onBackPressed试试这个:

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
} 

哪个退出应用程序。对我来说工作得很好。希望能帮助到你。

0

在您开启新活动(即从活动A转到其他活动)时致电this.finish()。在你的情况写这

public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent i = new Intent(MainActivity.this, Employee_List.class); 
       i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(i); 
       MainActivity.this.finish(); 
      } 
     }); 
0

你可以做这样的事情 -

private exit = false; 
public void onBackPressed() { 
    if (exit) 
     Home.this.finish(); 
    else { 
     Toast.makeText(this, "Press Back again to Exit.", 
       Toast.LENGTH_SHORT).show(); 
     exit = true; 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       exit = false; 
      } 
     }, 3 * 1000); 

    } 

}