我是Android编程新手。我目前正在我的应用程序中集成媒体播放器。通过菜单,我希望用户关闭声音,但如果需要也可以再次启动它。现在我有一个复选框,在播放音乐时检查,未检查时关闭音乐。
我已设法在菜单中插入复选框,并在应用启动时对其进行检查,就像它应该的那样。但当我尝试取消选中它时,应用程序会关闭...
有人有出版商吗?看到明显的错误?或者只想提示?
MainActivity
@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
<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" />
答案 0 :(得分:0)
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:summary="@string/summary_category"
android:title="@string/title_category">
<CheckBoxPreference
android:key="main"
android:defaultValue="true"
android:summary="@string/summary_main"
android:title="@string/title_main"
/>
</PreferenceCategory>
<!--Any other categories include here-->
</PreferenceScreen>
您只需将android:dependancy
设置为相应复选框必须依赖的复选框的键即可。
现在在res文件夹中创建一个名为xml的文件夹,并将您的首选项xml文件放在其中。 然后执行以下操作。
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
您也可以使用更推荐的片段来完成此操作。但上述方法要容易得多。如果您想使用片段执行此操作,请选中this,其中包含有关创建“设置活动”所需的所有信息。
希望这有助于!!!!!!!
答案 1 :(得分:0)
以下编解码器将导致应用程序关闭...
final CheckBox music = (CheckBox)findViewById(R.id.music);
music.setChecked(true);
相反,你可以这样做:
item.setChecked(true)