在我的活动中,当用户按下电源按钮时,我正在显示旋转器,如果用户选择任何选项都可以正常工作,则旋转器显示成功,但当用户按回其所需的两次回按以显示原始活动时,我该怎么办?如何关闭和完成活动,只是单一的背部按压??
public class ActivityHome extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mainactivity);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(KeyEvent.KEYCODE_POWER == event.getKeyCode() && isRooted()) {
startActivity(new Intent(ActivityHome.this, Spinnermenu.class));
return true;
}
return super.onKeyDown(keyCode, event);
}
public class Spinnermenu extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
final String items[] = {"Power off","Restart"};
AlertDialog.Builder ab=new AlertDialog.Builder(Spinnermenu.this);
ab.setTitle("Power Options");
ab.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int choice) {
if(choice == 0) {
Toast.makeText(Spinnermenu.this,"PowerOff Perform",Toast.LENGTH_SHORT).show();
}
else if(choice == 1) {
}
});
ab.show();
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode==KeyEvent.KEYCODE_BACK){
this.finish ();
}
return true;
}
}
您只需将这段代码放入程序中它将满足您的需要....
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
祝你一切顺利。
调用onBackPressed() from
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode==KeyEvent.KEYCODE_BACK){
// call here
onBackPressed();
}
return true;
}
@Override
public void onBackPressed() {
// just write alertbox option here
AlertDialog.Builder ab=new AlertDialog.Builder(Spinnermenu.this);
ab.setTitle("Power Options");
ab.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int choice) {
if(choice == 0) {
Toast.makeText(Spinnermenu.this,"PowerOff Perform",Toast.LENGTH_SHORT).show();
//add,
finish();
}
else if(choice == 1) {
//add,
finish();
}
});
ab.show();
}