Android: change back button actions

I am making a game and I have a settings page that turns music on or off. I want to redefine the lining so that it returns to the main page, you will understand why, when you see my code:

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; } } }); } 

}

Any help would be fantastic.

Update: Added this, still not working:

  @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); } 
+6
source share
3 answers

Override onKeyDown() Activity, here you can handle various keys or you can also override 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); } 
+6
source

Use the onBackPressed () function to override the action of the back button. Here is a sample code:

  @Override public void onBackPressed() { Intent intent = new Intent(this,ABC.class); startActivity(intent); } 

Enter the desired action inside the onBackPressed () function.

+8
source
 @Override public void onBackPressed() { ............. } 
+4
source

Source: https://habr.com/ru/post/911742/


All Articles