微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android:更改后退按钮的操作

我正在制作游戏,我有一个选项页面可以打开或关闭音乐.我想覆盖后退按钮,以便它返回到主页,你会明白为什么当你看到我的代码时:
public class OptionsActivity extends Activity {

private boolean isMyServiceRunning(String serviceCanonicalClassName) {
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceCanonicalClassName.equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}

Intent i; // Handles MyMusicService.java


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.options);


    final TextView tSound = (TextView) findViewById(R.id.textView2);

    final Button saveBtn = (Button) findViewById(R.id.optSaveBtn);
    final Button tblBtn = (Button) findViewById(R.id.tableBtn);

    i=new Intent(this,MyMusicService.class);

    final ToggleButton soundOption = (ToggleButton) findViewById(R.id.soundPref);


    boolean musicPlays = isMyServiceRunning(MyMusicService.class.getCanonicalName());


    soundOption.setChecked(musicPlays); 


    if(musicPlays==true){

        tSound.setText("On");
    }

    if(musicPlays==false) { 

        tSound.setText("Off");
    }


    soundOption.setonClickListener(new View.OnClickListener() {

        public void onClick(View v) {   

            // Perform action on clicks to control sound being on and off.   
            if(soundOption.isChecked()) {  

                Toast.makeText(OptionsActivity.this,"Music on.",Toast.LENGTH_SHORT).show(); 
                startService(i);
                Intent i = new Intent(OptionsActivity.this,OptionsActivity.class);
                startActivity(i);

            } 

            else {  

                if(stopService(i)==true){

                    soundOption.setChecked(false);
                    stopService(i);
                    Toast.makeText(OptionsActivity.this,"Music off.",Toast.LENGTH_SHORT).show();
                    Intent i = new Intent(OptionsActivity.this,OptionsActivity.class);
                    startActivity(i);

                }  
            }
        }

    });



    tblBtn.setonClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            Intent tblView = new Intent(OptionsActivity.this,sqlView.class);
            startActivity(tblView);

        }
    });



    saveBtn.setonClickListener(new View.OnClickListener(){

        public void onClick(View v) {



            switch (v.getId()){ 

            case R.id.optSaveBtn: //Determine what will happen when the user presses the "Submit button".
                boolean optionsWork = true;
                try{

                    String sound = tSound.getText().toString();

                    optionsDB entry = new optionsDB(OptionsActivity.this); //Creating a new instance of MasterMind game
                    entry.open();
                    entry.createOptionEntry(sound); //Passing both strings
                    entry.close();

                }catch (Exception e){ //Creating an error message if for some reason the app cannot transfer data to the Database.

                    Toast.makeText(OptionsActivity.this,"Error",Toast.LENGTH_SHORT).show();
                }

                finally { //Creating an AlertDialog Box when the user presses the Submit button.

                    if (optionsWork){

                        Toast.makeText(OptionsActivity.this,"Settings Saved",Toast.LENGTH_SHORT).show();

                    }

                }

                break;

            }
        }
    });
}

}

任何帮助都会非常棒,谢谢.

更新:添加此,仍然不起作用:

@Override
public boolean onKeyDown(int keyCode,KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK ) {
        // do something on back.
        return true;
    }
    Intent i = new Intent(OptionsActivity.this,MainActivity.class);
    startActivity(i);
    return super.onKeyDown(keyCode,event);
}

解决方法

覆盖Activity的onKeyDown(),这里你可以处理各种键或者也可以覆盖onBackPresses()
@Override
public boolean onKeyDown(int keyCode,KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK ) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode,event);
}

原文地址:https://www.jb51.cc/android/313859.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐