2012-05-15 2 views
0

나는 MainActivitySecondActivity을 만들었습니다. onClickMainActivity 일 때 SecondActivity을 시작합니다. SecondActivity이 끝나면 ImageView.setVisibility(View.VISIBLE);이되고 counter++이되는 값을 반환합니다.onActivityResult 결과를 저장하는 방법은 무엇입니까?

내 문제는 응용 프로그램을 닫고 다시 시작하면 모든 값이 지워지고 ImageViewImageView.setVisibility(View.INVISIBLE);counter == 0으로 다시 바뀝니다.

내가 응용 프로그램을 닫거나 모바일을 재부팅해도 데이터를 저장할 수 있습니까 (SecondActivity의 결과)? 나는 다시 시작할 때마다 응용 프로그램을 닫기 전에 public void onCreate(Bundle savedInstanceState) {을 설정하려고합니다. "correcto1.setVisibility (View.VISIBLE);"


내가 원하는 "INT의 contadorliga"를 저장하는 것입니다 및 "correcto2.setVisibility (View.VISIBLE);" 그래서 내가 애플 리케이션을 restar 때마다 그것이 최신 시간이었다. 이건 내 코드입니다 : 공유 환경 설정의

package com.fakur.android.futbolquiz; 

import android.app.Activity; 
import android.content.ComponentName; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class Liga extends Activity { 
/** Called when the activity is first created. */ 

static final int LIGA = 0; 
int contadorbarcelona = 0; 
int contadormadrid = 0; 
int contadorliga = 0; 

ImageView about; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 

setContentView(R.layout.liga); 
TextView contador1 = (TextView) findViewById(R.id.contador1); 
contador1.setText(contadorliga + "/20"); 
} 

public void onBarcelonaClick(View botton) { 

Intent intent = new Intent(); 
intent.setClass(this,Pregunta.class); 
intent.putExtra("Barcelona", "Barcelona"); 
startActivityForResult(intent,LIGA); 
} 

public void onMadridClick(View botton) { 

Intent intent = new Intent(); 
intent.setComponent(new ComponentName(this,Pregunta.class)); 
intent.putExtra("Madrid", "Madrid"); 
startActivityForResult(intent,LIGA); 
} 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 

TextView contador1 = (TextView) findViewById(R.id.contador1); 
ImageView correcto1 = (ImageView) findViewById(R.id.correcto1); 
ImageView correcto2 = (ImageView) findViewById(R.id.correcto2); 

if (requestCode == LIGA){ 

    if (resultCode == 1) { 

     if(contadorbarcelona == 0){ 

      correcto1.setVisibility(View.VISIBLE); 
      contadorliga++ ; 
      contadorbarcelona++; 
     } 
    } 

    if (resultCode == 2) { 
     if(contadormadrid == 0){ 

      correcto2.setVisibility(View.VISIBLE); 
      contadorliga++ ; 
      contadormadrid++; 
     } 
    } 

} 

contador1.setText(contadorliga + "/20"); 

} 

답변

1

사용은 당신을 위해 가장 적합한 참조 here

편집 :

  • 귀하의 코멘트에 응답 아래

    추가 된 소스;

    private static final String PREFERENCES_CONTADORLIGA = "ChangeThisTextWithSomethingYouPrefer"; 
    private static final String PREFERENCES_CONTADORLIGA_KEY = "ChangeThisTextWithSomethingYouPrefer"; 
    
    
    public void onCreate(Bundle savedInstanceState) 
    { 
    
        // Restore preferences 
        SharedPreferences settings = getSharedPreferences(PREFERENCES_CONTADORLIGA, Context.MODE_PRIVATE); 
        contadorliga = settings.getInt(PREFERENCES_CONTADORLIGA_KEY, 0); 
    } 
    
    
    
    protected void onDestroy() 
    { 
    
        super.onDestroy(); 
    
        // We need an Editor object to make preference changes. 
        // All objects are from android.context.Context 
        SharedPreferences settings = getSharedPreferences(PREFERENCES_CONTADORLIGA, Context.MODE_PRIVATE); 
        SharedPreferences.Editor editor = settings.edit(); 
        editor.putInt(PREFERENCES_CONTADORLIGA_KEY, contadorliga); 
    
        // Commit the edits! 
        editor.commit(); 
    } 
    

나는이 당신을 위해 작동합니다 바랍니다. 행운을 빕니다!

+0

감사합니다.하지만 제대로 할 수는 없습니다. 내 코드를 작성했습니다. 제발 좀 봐 주시겠습니까? – Juan

+0

대단히 감사합니다, contadorliga 잘 작동합니다. 그러나 correcto1.setVisibility (View.VISIBLE)를 어떻게 저장할 수 있습니까? ? – Juan

+0

나는 그것을 가진다! 완료 :) 감사합니다 youuuuu – Juan

2

데이터 집합이 거대한 크기가 아니라면 Gokhan이 제안한 것처럼 공유 환경 설정을 사용하는 것이 좋습니다.

동안, 비슷한 데이터를 많이 저장할 경우 sqlite3 데이터베이스를 사용하여 데이터를 저장하십시오. Link.

또한 데이터를 onStop() 함수에 저장하십시오.

+0

고마워하지만 난 그것을 제대로 할 수 없습니다. 내 코드를 작성했습니다. 제발 좀 봐 주시겠습니까? – Juan

관련 문제