2012-05-20 116 views
-1

我相信我有一個簡單的問題......但對於初學者來說,我再也看不到它了。如何從其他類中獲取var

在一個類中,我想從另一個類中獲取一些var。

類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不能解析爲一個類型」=>在的getSettings TEST1 =新RingSettings() ;

我在做什麼錯了?

+1

除非你有一個地方叫做類'RingSettings'現在你試圖實例化一個方法'RingSettings',從類'GetSettings'這顯然會失敗。我建議你更多地瞭解Java(以及Android)。也許你想做'GetSettings test1 = new GetSettings();' – Luksprog

回答

2

你肯定有一些事情要解決這裏。

  • GetSettings中定義的RingSettings返回類型void不是GetSettings對象。
  • RingSettings被定義爲將上下文作爲參數。
  • RingSettings被定義爲的getSettings的方法,對象,應GetSettings.RingSettings(上下文)被稱爲
  • 假設你想創建一個對象的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.

好運

+0

謝謝你的回答! – user1404924

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();

+0

不幸的是,這並沒有解決這段代碼中的錯誤。它只增加了另一層複雜性。 – cstrutton

+0

這個答案完美適用於我,當與其他答案和意見清單條目相結合。 – brandall

相關問題