Когда я пытаюсь разместить виджет погоды на главном экране, я хочу дать пользователю возможность выбрать город в этот момент, и виджет начнет показывать погоду для этого города.Для этого я использовал метод onEnabled в классе Provider.
Итак, что я делаю здесь, это просто запускаю действие в некотором классе предпочтений, где я использую строковый массив, чтобы дать пользователю возможность выбора.И затем OnSharedPreferenceChangeListener внутри onEnabled снова, я начинаю другое действие с URL города.Этот новый класс acitvity будет обрабатывать логику погоды при запуске, когда я впервые пытаюсь разместить виджет погоды на домашнем экране.Поэтому я просто пытаюсь установить некоторые textFields в этом новом классе активности, чтобы они появлялись в виджете, когда я помещал их на экран, но я не могу понять, почему он не применяется.Вот код ниже моего AppWidgetProvider.
public class MyWeatherAppWidgetProvider extends AppWidgetProvider{
private String url;
@Override
public void onEnabled(Context context) {
// TODO Auto-generated method stub
super.onEnabled(context);
final Context this_context = context;
Intent intent = new Intent(context.getApplicationContext(), EditPrefs.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this_context);
url = prefs.getString("cities", "http://www.yr.no/place/Nepal/Bagmati/Kathmandu/forecast.xml");
System.out.println(url);
Intent intent = new Intent(this_context.getApplicationContext(), VaxjoWeather.class);
intent.putExtra("city", url);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this_context.startActivity(intent);
}
};
prefs.registerOnSharedPreferenceChangeListener(listener);
url = prefs.getString("cities", "http://www.yr.no/place/Nepal/Bagmati/Kathmandu/forecast.xml");
System.out.println(url);
}