2011-08-05 3 views
0

내 모든 응용 프로그램에서 SharedPreferences 메서드를 사용하여 환경 설정 및 기타 데이터를 쉽게 전달했습니다. 이제 AChartEngine과의 인터페이스를 시도하고 있는데이 구문 오류가 발생합니다 : "SharedPreferences (String, int) 메서드가 AverageHoleScoreToPar 유형에 대해 정의되지 않았습니다." 이것은 코드입니다 :SharedPreferences 메서드가 AChartEngine 인 텐트에 대해 정의되지 않았습니다

... 
import android.content.SharedPreferences; 
import android.graphics.Color; 
import android.graphics.Paint.Align; 

public class AverageHoleScoreToPar extends AbstractDemoChart { 
public String getName() { 
    return "getName"; 
} 
public String getDesc() { 
    return "The average temperature in 4 Greek islands (line chart)"; 
} 
public Intent execute(Context context) { 
    String PREFS_NAME = "PersistentData";  
    SharedPreferences prefs = SharedPreferences(PREFS_NAME, 0); 
    SharedPreferences.Editor editor = prefs.edit(); 
    int p1R_id = prefs.getInt("prefPrefp1R_id", 0); 
    String p1R_name = prefs.getString("prefPrefp1R_name", ""); 
... 

나는 안드로이드 또는 Java의 잘 문서화 된 복잡한 중 하나를 해결할 때마다 다른 충돌합니다. 그러나 재미 (대부분의 경우)로 답을 찾고 있습니다.

답변

0

이 코드를보십시오 : 그것은 여전히 ​​AverageHoleScoreToPar 작동하지 않는 경우 Application 클래스를 확장하고 저장하려고

SharedPreferences prefs = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); 

대신 SharedPreferences(PREFS_NAME, MODE_PRIVATE);

당신의 SharedPreferences 중 하나에 public static SharedPreferences 변수 또는 단지 public 나중에 들려 줄 변수 getApplicationContext();

static의 예 :

TestApplication.java :

public class TestApplication extends Application 
{ 
    public static SharedPreferences mPrefs; 

    @Override 
    public void onCreate() 
    { 
     super.onCreate(); 
     String PREFS_NAME = "PersistentData";  
     SharedPreferences mPrefs = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); 
    } 
} 

하고 AverageHoleScoreToPar.java

이를 사용

public Intent execute(Context context) { 
    SharedPreferences prefs = TestApplication.mPrefs; 
    SharedPreferences.Editor editor = prefs.edit(); 
... 
} 

AndroidManifest.xml 파일에 Application 클래스를 포함하는 것을 잊지 마십시오.

+0

피드백에 대한 감사 Mircea. 나는 첫 번째 제안이 구문 오류를 해결했다고 믿지만 일종의 실행 오류가 남았고 아무리 많은 변형 ("다른 웹 Q & A"에서 "시도"에 기반)을 했더라도 "prefs"가 null로 남았습니다 "SharedPreferences prefs = TestApplication.mPrefs;"후에 처형되었다. 오늘 나는 AverageHoleScoreToPar 내에서 SQL에 액세스를 시도하고 아무데도 그걸로 갔다. 방금 매개 변수로 제어하려는 모든 배열과 변수를 전달하도록 설정을 마쳤습니다. 나는 처음부터 그 길을 갔어야했다. 건배, Tom –

+0

'TestApplication.onCreate'에서'getSharedPreferences' 호출 후에'mPrefs'가'null'인지 확인 했습니까? –

관련 문제