如何从其他类中获取var

时间:2012-05-20 07:45:41

标签: java android eclipse class

我相信我有一个简单的问题......但作为初学者,我再也看不到了。

在课堂上,我想从另一个班级学习一些变体。

第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无法解析为类型”=> at GetSettings test1 = new RingSettings();

我做错了什么?!

2 个答案:

答案 0 :(得分:2)

你肯定要在这里解决一些问题。

  • GetSettings中定义的RingSettings返回类型void而不是GetSettings对象。
  • RingSettings定义为将上下文作为参数。
  • RingSettings定义为GetSettings对象的方法,应使用GetSettings.RingSettings(context)调用
  • 假设您正在尝试创建GetSettings对象... GetSettings应该有一个构造函数

这些只是一些入门。我不是故意在这里粗鲁,但你应该玩一些更简单的例子来更好地学习Java的基础知识。话虽这么说,如果你解决了上述问题并重新发布你的代码,那么某人应该能够让你更接近你想要完成的事情。

new关键字上查看此信息:(开始使用)

The new operator instantiates a class by allocating memory for a new object and returning a reference to that memory. The new operator also invokes the object constructor.

祝你好运

答案 1 :(得分: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();

相关问题