Android:更改后退按钮的操作
我正在制作一个游戏,我有一个选项页面,可以打开或关闭音乐。我想覆盖backbutton,使其返回主页,当您看到我的代码时,您就会明白为什么:Android:更改后退按钮的操作,android,button,android-intent,back,Android,Button,Android Intent,Back,我正在制作一个游戏,我有一个选项页面,可以打开或关闭音乐。我想覆盖backbutton,使其返回主页,当您看到我的代码时,您就会明白为什么: public class OptionsActivity extends Activity { private boolean isMyServiceRunning(String serviceCanonicalClassName) { ActivityManager manager = (ActivityManager) getSystemSe
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);
}
覆盖活动的onKeyDown()
,在这里您可以处理各种键,也可以覆盖onbackpress()
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
使用onBackPressed()函数覆盖后退按钮的操作。下面是一些示例代码:
@Override
public void onBackPressed()
{
Intent intent = new Intent(this,ABC.class);
startActivity(intent);
}
在onBackPressed()函数中编写所需的操作。谢谢您的评论,我已经尝试过了,但一进入Options类,我就一直在使用Force。有什么想法吗?啊,好吧,它不再崩溃了。。。现在什么都不做了,哈哈。你能检查一下我修改过的答案吗?
@Override
public void onBackPressed()
{
Intent intent = new Intent(this,ABC.class);
startActivity(intent);
}