내 활동에 체크 표시가 있습니다. 나는 내 애플 리케이션을 열 때마다 같은 상태 (체크/체크하지 않음)를 유지하는 방법을 궁금하네요. 마지막 상태를 원하는 경우앱을 열 때마다 체크 박스를 동일한 상태로 유지하려면 어떻게해야합니까?
답변
SharedPreferences을 사용하면 응용 프로그램이 닫힌 상태에서도 상태를 유지하는 CheckBox를 구현할 수 있습니다.
- 사용자가 CheckBox를 선택/선택 취소하면 Shared 상태가됩니다. Preferences.
- 사용자가 활동할 때마다. 이전에 저장된 값을 Shared-Preferences에서 읽고 확인란의 상태를 설정합니다.
다음은 앱이 종료 된 경우에도 확인란의 상태 저장을위한 예제 코드입니다.
public class TestActivity extends Activity{
CheckBox checkBox = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
checkBox = (CheckBox) findViewById(R.id.my_check_box);
boolean isChecked = getBooleanFromPreferences("isChecked");
Log.i("start",""+isChecked);
checkBox.setChecked(isChecked);
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
Log.i("boolean",""+isChecked);
TestActivity.this.putBooleanInPreferences(isChecked,"isChecked");
}
});
}
public void putBooleanInPreferences(boolean isChecked,String key){
SharedPreferences sharedPreferences = this.getPreferences(Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(key, isChecked);
editor.commit();
}
public boolean getBooleanFromPreferences(String key){
SharedPreferences sharedPreferences = this.getPreferences(Activity.MODE_PRIVATE);
Boolean isChecked = sharedPreferences.getBoolean(key, false);
return isChecked;
}
}
main.xml에
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<CheckBox
android:id="@+id/my_check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
checkBox.setChecked(true);
, 단순히 onPause()
방법 SharedPreferences
에 체크 된 상태를 작성하고 onResume()
방법 상태를 얻는다.
은 참조 : http://developer.android.com/reference/android/widget/CheckBox.html http://developer.android.com/reference/android/content/SharedPreferences.html
당신의 최선의 선택 앱에서 SharedPreferences
을 구현하고 그 상태를 저장하는 것입니다. 앱을 실행하면 환경 설정에서 상태를 검색하고 확인란을 선택/선택 취소합니다.
응용 프로그램 상태를 기억하기 위해, 당신은 onSaveInstanceState()
및 onRestoreInstanceState()
방법을 사용할 수 있도록 할 것입니다 있는지 확인 (추가 정보를 원하시면이 answer 참조) 상자를 선택하거나 선택 취소해야합니다.
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putBoolean("IsCheckboxChecked", _myCheckbox.isChecked());
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
_myCheckbox.setChecked(savedInstanceState.getBoolean("IsCheckboxChecked"));
}
이것은 비슷한 게시물입니다. SO Qn 거기에서 같은 아이디어를 사용할 수 있습니다. 희망이 도움이됩니다.
가장 좋은 방법은 SharedPreference를 사용하는 것입니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout);
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
CheckBox checkBox = (CheckBox) findViewById(R.id.checkbox_id);
checkBox.setChecked(sharedPreferences.getBoolean("isChecked", false));
}
당신을 희망 : 당신의 활동이이 같은 SharedPreference에 그 값을 확인할 수 있습니다 시작할 때 다음
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit(); //opens the editor
editor.putBoolean("isChecked", true); //true or false
editor.commit(); //saves it in shared preference
을 : sharedpreference하는
저장 현재 상태를 : 당신은 다음과 같이 사용할 수 있습니다 이 정보를 사용할 수 있습니까
첫 발췌 문장에서 나는 그 중 하나의 방법을 만들어야합니까? – hectichavana
체크 상자의 상태를 저장하는 메소드를 만드십시오. 따라서 사용자가 확인하거나 선택을 취소 할 때마다 현재 상태가 저장됩니다. 그런 다음 마지막으로 알려진 상태가 선택되었는지 또는 선택 취소되었는지 확인하면 활동의 어느 위치에서나 확인할 수 있습니다. – Fergers
- 1. 레일에 기능을 로그인 상태로 유지하려면 어떻게해야합니까?
- 2. 앱을 열 때마다 앱을 다시 시작하려면 어떻게해야합니까?
- 3. 링크를 활성화 상태로 유지하려면 어떻게해야합니까?
- 4. 동일한 저장소 내에서 두 파일을 동기화 상태로 유지하려면 어떻게해야합니까? 자식에
- 5. 동적으로 생성 체크 박스를 열
- 6. SDK 업데이트를 최신 상태로 유지하려면 어떻게해야합니까?
- 7. DataService를 ObservableCollection으로 최신 상태로 유지하려면 어떻게해야합니까?
- 8. Facebook API를 최신 상태로 유지하려면 어떻게해야합니까?
- 9. 체크 박스를 체크 검증
- 10. 저장소에있는 다른 git 저장소의 파일을 최신 상태로 유지하려면 어떻게해야합니까?
- 11. 체크 박스 상태로 Jquery 정렬 테이블 열
- 12. jquery는 체크 박스를 선택합니다.
- 13. 여러 장소에서 동일한 체크 박스를 처리하십시오.
- 14. 체크 체크 박스를 숨기기
- 15. 사용자가 Android의 애플리케이션에 로그인 된 상태로 유지하려면 어떻게해야합니까?
- 16. Android 앱을 동일한 상태로 다시 시작하십시오.
- 17. 사용자가 전경 앱을 열 때마다 감지
- 18. Android : 앱을 열 때마다 LicenseChecker를 호출해야합니까?
- 19. 체크 박스를 사용하여보기에서 무언가를 체크 표시하는 방법?
- 20. SQL Server - ETL의 쿼리와 테이블을 동기화 된 상태로 유지하려면 어떻게해야합니까?
- 21. tabitem에 체크 박스를 동적으로 추가하려면 어떻게해야합니까?
- 22. 데이터 그리드보기에서 체크 박스를 기본적으로 선택하도록하려면 어떻게해야합니까?
- 23. 소켓에서 소켓을 유지하려면 어떻게해야합니까?
- 24. 양식이 Android에서 작성 될 때까지 버튼을 비활성화 상태로 유지하려면 어떻게해야합니까?
- 25. Mercurial 아래 'default'지점을 사용하여 내 지사를 최신 상태로 유지하려면 어떻게해야합니까?
- 26. OSX에서 C++의 CGEventPost를 사용하여 키를 누른 상태로 유지하려면 어떻게해야합니까?
- 27. 링크를 암호화하여 파일 위치를 암호화하고 숨겨진 상태로 유지하려면 어떻게해야합니까?
- 28. 멀티 스레드 게임 엔진에서 월드 데이터를 동기화 상태로 유지하려면 어떻게해야합니까?
- 29. 체크 박스가 체크 된 상태로 유지됩니다.
- 30. iPad 앱을 닫을 때마다 다시 시작하도록하려면 어떻게해야합니까?
내가 원하는 것을 얻기에 충분한 위의 코드는 무엇입니까? 내 체크 박스에 어떻게 적용해야합니까? – hectichavana
'_myCheckbox.setChecked'를 보면 상태를 체크 박스에 적용합니다. – Leandros
앱에 해당 스 니펫을 적용했지만 확인란의 상태가 저장되지 않습니다 – hectichavana