Permalänk
Medlem

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.

Citat:

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

Dold text

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>

Dold text

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?

Visa signatur

"This is VAR, spelled A-U-T-O"