Check box of android menu
A beginner in android, which is currently in an android demand, needs to integrate a media player, add a checkbox in the menu, stop the player when the checkbox is selected, and start the player when the player is deselected, currently, I have enabled checkbox to stop the player.
When I unselect the checkbox, an error is reported. I haven't found the cause for a long time. The mood is bad .....
My code is as follows:
MainActivity
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 |
@Override public boolean onOptionsItemSelected(MenuItem item) { //Switch-sats i syfte om att det kommer tillkomma fler alternativ //Switchen bygger på att hämta rätt id ifrån användarens val switch (item.getItemId()) { case R.id.action_help: //Bytar Activity till help Intent intent = new Intent(MainActivity1.this, help.class); startActivity(intent); return true; case R.id.music: final CheckBox music = (CheckBox)findViewById(R.id.music); music.setChecked(true); music.setOnClickListener(new OnClickListener(){ public void onClick(View v){ if (((CheckBox) v).isChecked()) { backsound = MediaPlayer.create(MainActivity1.this, R.raw.backsound); backsound.start(); backsound.setLooping(true); }else{ music.setChecked(false); backsound.stop(); } }}); default: return super.onOptionsItemSelected(item); }}} |
Main_activity.xml
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<menu xmlns:android=http://schemas.android.com/apk/res/android > <item android:id=@+id/action_settings android:orderInCategory=100 android:showAsAction=never android:title=@string/action_settings/> <item android:id=@+id/action_help android:orderInCategory=100 android:showAsAction=never android:title=@string/help/> <item android:id=@+id/music android:title=@string/musik android:checkable=true android:checked=true /> |
Solution
| 1 |
<preferencescreen xmlns:android=http://schemas.android.com/apk/res/android> <preferencecategory android:title=@string/title_category android:summary=@string/summary_category> <checkboxpreference android:title=@string/title_main android:summary=@string/summary_main android:defaultvalue=true android:key=main> checkboxpreference> preferencecategory> preferencescreen> |
You only need to set setting android: dependancy to implement this function. Now you can create an xml file in the res directory, put the above xml code, and then perform the following operations:
| 1 2 3 4 5 6 7 8 9 10 11 |
public class SettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } |
Of course, you can also do it in other ways, such as fragments, but this method is simpler.