-1

簡単な質問があると思いますが……でも初心者の私にはもう見えません。

クラスで、別のクラスからいくつかの変数を取得したいと思います。

クラス1:

package com.blabla;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
public class SMSReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    //get shared preferences

    GetSettings test1 = new RingSettings();
    String theSMStext = test1.getSMStext();
    Boolean theActivateSMS = test1.getActivateSMS();    
}
}

クラス2:

package com.blabla;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
public class GetSettings {

/**
 * @param args
 */
private String SMStext;
private Boolean ActivateSMS;


public static void RingSettings(Context context) {
    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);

    String SMStext = sp.getString("SMStext", "0");
    Boolean ActivateSMS = sp.getBoolean("ActivateSMS", false);
}

public String getSMStext(){
    return SMStext;
}

public Boolean getActivateSMS(){
    return ActivateSMS;
}
}

Eclipseはclass1で「RingSettingsはタイプに解決できません」=>GetSettingstest1 = new RingSettings();で私に与えています。

私が間違っているのは何ですか?!

4

2 に答える 2

2

ここで修正すべきことがいくつかあります。

  • GetSettingsで定義されているRingSettingsは、GetSettingsオブジェクトではなくタイプvoidを返します。
  • RingSettingsは、コンテキストを引数として取るように定義されています。
  • RingSettingsは、GetSettingsオブジェクトのメソッドとして定義されており、GetSettings.RingSettings(context)で呼び出す必要があります。
  • GetSettingsオブジェクトを作成しようとしていると仮定します...GetSettingsにはコンストラクターが必要です

これらは、始めるためのほんの数例です。ここで失礼なことを言うつもりはありませんが、Javaの基本をよりよく学ぶために、いくつかの簡単な例で遊んでおく必要があります。そうは言っても、上記の問題を修正してコードを再投稿すると、誰かがあなたが達成しようとしていることに近づくことができるはずです。

キーワードに関するこの情報をチェックしてくださいnew:(始めるために)

new演算子は、新しいオブジェクトにメモリを割り当て、そのメモリへの参照を返すことにより、クラスをインスタンス化します。new演算子は、オブジェクトコンストラクターも呼び出します。

幸運を

于 2012-05-20T08:00:23.520 に答える
1

最も簡単な解決策は、ヘルパークラスを実装することです。

public class GlobalVars extends Application {

    private static String value2;


    public static String getValue() {
        return value2;
    }

    public static void setValue(String value) {
        value2 = value;
    }
}

クラスAでは、値を次のように設定しますGlobalVars.setValue("something");

クラスBでは、次のように値を取得しますString your_value = GlobalVars.getValue();

于 2012-05-20T08:27:26.373 に答える