공유 환경 설정에서 라디오 버튼 상태를 저장하는 것과 관련하여 많은 질문이 있지만 그 중 어느 것도 내가 원하는 해결책을 제공하지 못합니다.공유 환경 설정에서 라디오 버튼을 저장하고 액세스하는 방법은 무엇입니까?
for 루프의 각 라디오 그룹 안에 라디오 그룹 15 개와 라디오 버튼 4 개를 생성합니다. 라디오 그룹은 15 일에서 고유 ID를 가지고 라디오 버튼은 100에서 159
이에 나는 라디오 버튼의 ID를 저장하는 데 사용하는 코드 레인 징 IDS 있습니다
public void saveArray(int[] array, String arrayName) {
SharedPreferences prefs = getActivity().getSharedPreferences("preferencename", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(arrayName +"_size", array.length);
for(int i=0;i<array.length;i++) {
editor.putInt(arrayName + "_" + i, array[i]);
}
editor.commit();
}
array
는 고유 ID를 포함을 확인 된 모든 라디오 버튼 중 위의 코드를 테스트했지만 완벽하게 작동하지만 문제는 내가 액세스 할 수 없다는 것입니다.
이
내가 라디오 버튼의 ID를 검색하는 데 사용하는 코드입니다 :public void loadArray(String arrayName, Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);
int size = prefs.getInt(arrayName + "_size", 0);
int array[] = new int[size];
for(int i=0;i<size;i++) {
array[i] = prefs.getInt(arrayName + "_" + i, 0);
}
}
saveArray
등을 loadArray
도 작동합니다. 배열은 올바른 라디오 버튼 ID로 채워집니다. 문제는 이제 시작 - 내가 그 라디오 버튼에 액세스 할 수없는, 즉 그래서이 loadArray
for(int i=0; i<size; i++) {
RadioButton radio1 = (RadioButton) findViewById(array[i]);
}
에 가능한 솔루션 내에서 작동하지 않습니다 onCreateView()
에서만 사용할 수 있기 때문에 내가 findViewById()
할 수 없습니다 findViewById
은보기를 onCreateView()
에 저장하고 나중에 액세스합니다. 그래서 onCheckedChanged
내부
RadioButton[] allRadio = new RadioButton[15];
지금은 라디오 버튼 배열을 만들어, 나는 배열에 선택한 라디오 버튼을 추가 해요 :
이public void onCheckedChanged(RadioGroup radioGroup, int i) {
RadioButton radio = (RadioButton) rootView.findViewById(i);
String selectedValue = radio.getText().toString();
allRadio[radioGroup.getId()-1] = radio;
}
위의 코드는 완벽 라디오 버튼 배열 내부하지만 지금 저장 나는 그들을 구할 수 없다! int, string 등을 공유 환경 설정에는 저장할 수 있지만 라디오 버튼에는 저장할 수 없습니다! 이 문제에 대한 해결책은 라디오 버튼 ID를 저장할 수 있지만 같은 문제가 다시 시작되어 findViewById()
을 사용할 수 없다는 것입니다.
글쎄 너무 쉽게 만들었습니다. 배열을 되 돌리는 것은 트릭을했습니다, 고마워요! –