2012-07-02 6 views
1

PreferenceActivity까지 확장되는 PreferenceClass 클래스가 있습니다. 나는 또한 SensorListener를 구현하는 비 활동 클래스 Shakelistener비 활동 클래스의 SharedPreference

public class Preferenceclass extends PreferenceActivity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // setContentView(R.layout.main2); 
    addPreferencesFromResource(R.layout.preferences); 

}} 

다음과 같이이 클래스의 코드입니다. 다음과 같이이 클래스의 코드는 다음과 같습니다 :이 비 활동 클래스에서 기본 설정에 액세스 할 수 있어야합니다

public class Shakelistener implements SensorListener { 
    public void onSensorChanged(int sensor, float[] values) { 
    // Some code 
    }} 

, 그러나 나는이 작업을 수행하는 방법을 모르겠어요.

이 내가 공유 환경 설정에 액세스하는 데 사용하는 코드는

편집 :

String PREF_FILE_NAME = "preferences"; 

    SharedPreferences pref = mContext.getSharedPreferences(PREF_FILE_NAME , Context.MODE_PRIVATE); 
    String myListPreference = pref.getString("listpref", "default choice"); 
    boolean cb = pref.getBoolean("checkBox", false); 
    Toast.makeText(mContext, myListPreference+"-"+cb, Toast.LENGTH_LONG).show(); 

이 코드는 오류를 포기하지 않습니다,하지만 항상에 "기본 선택 - 거짓"토스트를 평가 .

이 경우 어떤 PREF_FILE_NAME을 사용해야합니까?

답변

2

비 활동 클래스의 생성자에서 Context의 인스턴스를 가져 와서 이러한 메소드를 모두 호출하십시오. 이 같은

뭔가 :

public class NonActivityClass implements SensorListener{ 
Context mContext; 
public NonActivtiyClass(Context context) { 
this.mContext = context; 
} 
//Rest of your code 
} 

그런 다음에 그 클래스의 객체를 생성하기 위해이 작업을 수행하여 Activtiy의 onCreate() :

NonActivityClass nac = new NonActivityClass(this); 
+0

래 가브 선생님은 나에게 내가 그렇게 할 수있는 방법에 대한 간단한 아이디어를 줄 수 있습니다 ... 아니면 내 문제에 관한 자습서의 링크를 내게 주면 좋을 것 같습니다. – void

+0

그러면 어떻게 공유 환경 설정에 액세스 할 수 있습니까? – void

+0

귀하의 앱을 작성하지 않을 예정입니다. mContext 변수를 사용하여 Activity에서 사용하는 모든 함수를 호출 할 때와 같은 방법으로 호출합니다. –