0

アプリ全体で SharedPreferences メソッドを使用して、設定やその他のデータを簡単に渡しました。今、私は AChartEngine とインターフェースしようとしていますが、次の構文エラーが発生しています: "メソッド SharedPreferences(String, int) は、型 AverageHoleScoreToPar に対して定義されていません"。これはコードです:

...
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", "");
...

Android や Java の詳細に文書化された複雑な問題の 1 つを解決するたびに、別の問題にぶつかります。しかし、答えを探すのは (ほとんどの場合) 楽しいものです。

4

1 に答える 1

0

このコードを試してください:

SharedPreferences prefs = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);

それ以外のSharedPreferences(PREFS_NAME, MODE_PRIVATE);

それでもうまくいかない場合はAverageHoleScoreToPar、クラスを拡張して、変数または後で取得する変数にApplication格納してみてください。SharedPreferencespublic static SharedPreferencespublicgetApplicationContext();

これが次の例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();
...
}

ファイルにApplicationクラスを含めることを忘れないでください。AndroidManifest.xml

于 2011-08-05T18:32:23.307 に答える