2014-01-21 4 views
1

퀴즈 앱을 개발 중입니다. 상황은 다음과 같습니다.활동을 한 번만 표시하는 방법은 무엇입니까?

  • 사용자가 단추를 눌러 퀴즈를 선택하면 새 활동이 열립니다. 이 액티비티 내에서 사용자는 TextView에 무언가를 쓰고 다른 버튼을 눌러 텍스트가 올바른지 확인해야합니다. 그것이 맞다면 다른 마지막 활동이 열립니다.

  • 현재 사용자가 퀴즈를 선택해야하는 주요 활동으로 돌아올 때 동일한 퀴즈를 선택하면 답변을 다시 적어 두어야합니다.

답변을 저장하는 방법을 찾아야 응용 프로그램이 더 이상 답변을 적어 두지 않는 활동을 표시하지 않아도됩니다. 즉시 마지막 활동으로 이동해야합니다. 내가 SharedPreferences를 사용하여 이것을 관리 할 수 ​​있다는 것을 알았지 만 호를 설정하지 못했습니다.

+1

은 당신도 그것을 시도 주어진 적이 있습니까? [The docs] (http://developer.android.com/guide/topics/data/data-storage.html#pref)에는 문제를 설명하는 코드를 게시 할 수있는 좋은 예가 있습니다. – codeMagic

+6

이 문제는 문제 해결에 대한 시도가 없기 때문에 주제와 관련이없는 것처럼 보입니다. – codeMagic

+0

기억해야 할 단 하나의 대답입니까? –

답변

0

첫째, 이러한 방법 추가 - SharedPreference에서의 기입 해에 사용 읽기 : 그런 다음

public String getAnswer() 
{ 
    SharedPreferences sp = getSharedPreferences("prefName",0); 
    return sp.getString("myAnswer1","TheDefaultValueIfNoAnswerHasBeenSet"); 
} 

public void setAnswer(String theAnswer) 
{ 
    SharedPreferences.Editor editor = getSharedPreferences("prefName",0).edit(); 
    editor.putString("myAnswer1", theAnswer); 
    editor.commit(); 
} 

를, 사용자가 주요 활동에 다시 반환 할 때 (당신이 onBackPressed 방법을 사용할 수 있습니다 때 활동을 확인 닫는 중입니다), 환경 설정에 대한 답을 쓸 수 있습니다. 퀴즈 활동의 예를 들어

:

@Override 
public void onBackPressed() { 
    setAnswer(/* the String answer the user currently has */); 
} 

그리고 당신은 당신의 퀴즈 활동을 열 때 다음, 당신은 SharedPreference에서 읽을 수 있습니다. 당신의 onCreate 방법의 예를 들어

:

String previousAnswer = getAnswer(); 

// check to see if the answer is not "TheDefaultValueIfNoAnswerHasBeenSet" 
// or whatever you set the default value to be 

// set the answer in the quiz to be previousAnswer 
+0

) 정말 고마워. 내 바보 같은 질문에 대답했다. (죄송합니다. ( –

+0

어쨌든, "String previousAnswer = getAnswer();"후에 내 onCreate 메소드에 무엇을 써야합니까? if else 문은? –

+0

@ user3208166 귀하의 질문은 바보가 아닙니다. 그리고 EditText의 텍스트를 이전 대답으로 설정해야합니다. 아직 이해할 수 없다면 알려주십시오. 안드로이드에 대해 얼마나 새로운지 잘 모르겠습니다. –

관련 문제