के क्रियाओं को बदलना मैं एक गेम बना रहा हूं और मेरे पास एक विकल्प पृष्ठ है जो संगीत को चालू या बंद करता है। मैं backbutton ओवरराइड करना चाहते हैं ताकि यह वापस घर पृष्ठ पर जाता है, तो आप समझ जाएंगे कि कारण है कि जब आप मेरे कोड देखें:एंड्रॉइड: बैक बटन
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);
}
आपकी टिप्पणी के लिए धन्यवाद, मैंने यह कोशिश की है, लेकिन जैसे ही मैं विकल्प वर्ग में जाता हूं, मैं फोर्स क्लोज़ प्राप्त करता रहता हूं। कोई विचार? –
अपने लॉगकैट का पता लगाएं और देखें कि वास्तव में त्रुटि कहां आ रही है? –
आह ठीक है, ठीक है अब यह दुर्घटनाग्रस्त नहीं हो रहा है ... यह अभी कुछ नहीं कर रहा है हाहा। क्या आप मेरे संशोधित उत्तर की जांच कर सकते हैं? –