Android + Java: Mp3player
Hejsan.
Jag håller på att implementera lite extra funktioner i min Mp3-spelare och jobbar just nu med en "shuffle" funktion.
Tänkte använda mig av OptionsMenu för att kunna stänga på/av shuffle mode.
Men har lite funderingar på hur jag ska göra själva implementationen av detta, alla andra funktioner är redan lösta.
You can query the current state of the item (as it was before the user selected it) with isChecked()..
Därför blir det någon slags omvänd logik när man trycker på ett item.
private boolean shuffle = false;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
// Intent it;
switch(item.getItemId()){
// case android.R.id.home:
// close();
// it = new Intent(this, assigment2.MainList.class);
// it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// startActivity(it);
// return true;
case R.id.shuffle:
if(item.isChecked()){
item.setChecked(false);
shuffle = false;
}
else{
item.setChecked(true);
shuffle = true;
}
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.clear();
getMenuInflater().inflate(R.menu.mp3menu, menu);
if(menu.findItem(R.id.shuffle).isChecked()){
menu.findItem(R.id.shuffle).setTitle("Shuffle: ON");
//shuffle = true;
}
return true;
}
XML-filen för menu layout:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/mp3menu"
android:icon="@android:drawable/ic_menu_add"
android:orderInCategory="100"
android:showAsAction="ifRoom|withText"
android:title="Shuffle">
<menu>
<group android:checkableBehavior="single" >
</group>
<item
android:id="@+id/shuffle"
android:title="Shuffle: OFF"/>
</menu>
</item>
</menu>
Min stora fråga är egentligen om jag behöver använda onPrepareOptionsMenu(..) för att ändra vad som står på ett item i listan.
Kommer ju bara ändra om det är "checked" vid selected, annars populeras listan utifrån xml-filen.
Eller om jag ska ändra detta i ItemSelected metoden?
"This is VAR, spelled A-U-T-O"