0

나는 안드로이드 프로그래밍에 초보 다. 현재 내 앱에 미디어 플레이어를 통합하고 있습니다. 메뉴를 통해 사용자가 소리를 끌지 말고 원하는 경우 다시 시작하기를 원합니다. 지금은 음악을 재생할 때 선택되는 체크 박스와 선택하지 않을 때 음악을 끄는 체크 박스가 있습니다.메뉴 안의 체크 박스

메뉴에 체크 박스를 삽입하여 앱을 시작할 때 확인해야합니다. 하지만 선택을 취소하려고하면 앱이 종료됩니다 ...

누구든지 게시자가 있습니까? 분명한 오류를 보시겠습니까? 아니면 팁을주고 싶습니까?

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

http://stackoverflow.com/questions/8148746/ android-action-bar-checkable-menu-item-does-not-work-show- 제대로 표시/8493609 # 8493609 – Naddy

답변

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에 설정 활동 만들기에 대해 알아야 할 모든 항목이 있는지 확인하십시오.

희망이 도움이 !!!!!!!

0

folowing 코덱 앱이 종료의 원인이됩니다 ... 대신

final CheckBox music = (CheckBox)findViewById(R.id.music); 
music.setChecked(true); 

, 당신은이 작업을 수행 할 수 있습니다

item.setChecked(true) 
관련 문제