0

Я не могу получить значение из sharedpreferences в этом классе. getDefaultSharedPreferences дает ошибку «Метод getDefaultSharedPreferences (контекст) в типе PreferenceManager не применим для аргументов (HandlingXMLStuff)»Не удается получить значение из ListPreference

я могу получить значение из моего основного класса, но я не могу передать его в класс, показанном ниже.

public class HandlingXMLStuff extends DefaultHandler { 
String Units; 

private XMLDataCollected info = new XMLDataCollected(); 

public String getInformation() { 
    return info.dataToString(); 
} 

@Override 
public void startElement(String uri, String localName, String qName, 
     Attributes attributes) throws SAXException { 



    SharedPreferences prefs = PreferenceManager 
      .getDefaultSharedPreferences(this); 
    String unit = prefs.getString("unitsofmeasure", "Fahrenheit"); 

    Log.d("HandlingXMLStuff", "test" + unit); 
    // if (Units == "Farenheit") { 
    if (localName.equals("city")) { 
     String city = attributes.getValue("data"); 
     info.setCity(city); 
     Log.d("DeskClockActivity", "test" + city); 

    } else if (localName.equals("temp_f")) { 
     String t = attributes.getValue("data"); 
     int temp = Integer.parseInt(t); 
     info.setTemp(temp); 
    } 
    /* 
    * }/* else if (unit == "C") { if (localName.equals("city")) { String 
    * city = attributes.getValue("data"); info.setCity(city); } else if 
    * (localName.equals("temp_c")) { String t = 
    * attributes.getValue("data"); int temp = Integer.parseInt(t); 
    * info.setTemp(temp); } } 
    */ 
} 

}

ответ

0

getDefaultSharedPreferences принимает параметр контекста, а DefaultHandler класс не является контекстом.

+0

Так есть ли другой способ, чтобы я мог получить значение из sharedpreference в классе DefaultHandler? – MikeC

+0

просто передайте контекст вашему классу HandlingXMLStuff и используйте его для метода getDefaultSharedPreferences –

+0

@Mike: Конечно, ваш конструктор 'HandlingXMLStuff' возьмет ссылку« Контекст »и использует это для взаимодействия с общими предпочтениями. В качестве альтернативы вы можете настроить интерфейс прослушивателя, который ваш «HandlingXMLStuff» будет вызывать методы, когда это применимо, и абстрагировать взаимодействие с общими предпочтениями в каком-то другом классе, который имеет «Context». –

Смежные вопросы