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