Es ist mir gelungen, einen Schalter in der Aktionsleiste zu platzieren (wie in den Wi-Fi-Einstellungen).Wechseln der Switch-Instanz in die ActionBar
Ich habe die folgende mainmenu.xml Datei im/Menü-Ordner:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/item1"
android:titleCondensed="Service"
android:title="Service"
android:actionViewClass="android.widget.Switch"
android:showAsAction="always|withText">
</item>
Danach habe ich overrode die onCreateOptionsMenu()
Methode in der Aktivität, wie folgt:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
// Get widget's instance
swtService = (Switch)menu.findItem(R.id.item1).getActionView();
swtService.setOnCheckedChangeListener(this);
return super.onCreateOptionsMenu(menu);
}
Leider kann ich nicht verstehen, wenn diese Methode aufgerufen wird. Hier ist das Problem: es scheint, dass onCreateOptionsMenu
nicht einmal vor onResume()
genannt wird, so ein NullPointerException
geworfen wird:
@Override
public void onResume()
{
super.onResume();
// Synchronize the switch with service's status
swtService.setChecked(ServiceHelper.isServiceStarted(this, MySystemService.class.getName()));
}
bin ich etwas fehlt? Gibt es eine andere Möglichkeit, eine Ansicht in die Aktionsleiste zu verschieben?
EDIT
Mein Ziel API ist 17, und ich über Niederen nicht. :)
Hier ist ein Schuss von der Anwendung, die so genannte Lifecycle-Methoden zeigt:
Dank
Hey, das wie ein Charme! Vielen Dank! : D – XDnl