android30自带的天气预报例子代码
Android 3.0自带的天气预报例子代码 Android 3.0 正式版 API Level 11 中加入了一个天气预报例子,下面是 manifest.xml 中的关 键代码,只是少了 xml 的编码头: 复制到剪贴板 XML/HTML 代码 这里 WeatherDataProvider.Java 的源码为主要是 ContentProvider 相关的处理,这里 作为 appWidget 的 receiver 复制到剪贴板 Java 代码 class WeatherDataPoint { String city; //城市 int degrees; //度数 WeatherDataPoint(String c, int d) { city = c; degrees = d; } } public class WeatherDataProvider extends ContentProvider { public static final Uri CONTENT_URI = Uri.parse(“content://com.example.android.weatherlistwidget.provider“); public static class Columns { public static final String ID = “_id“; public static final String CITY = “city“; public static final String TEMPERATURE = “temperature“; } private static final ArrayList sData = new Array List(); @Override public boolean onCreate() { sData.add(new WeatherDataPoint(“San Francisco“, 13)); sData.add(new WeatherDataPoint(“New York“, 1)); sData.add(new WeatherDataPoint(“Seattle“, 7)); sData.add(new WeatherDataPoint(“Boston“, 4)); sData.add(new WeatherDataPoint(“Miami“, 22)); sData.add(new WeatherDataPoint(“Toronto“, -10)); sData.add(new WeatherDataPoint(“Calgary“, -13)); sData.add(new WeatherDataPoint(“Tokyo“, 8)); sData.add(new WeatherDataPoint(“Kyoto“, 11)); sData.add(new WeatherDataPoint(“London“, -1)); sData.add(new WeatherDataPoint(“Nomanisan“, 27)); return true; } @Override public synchronized Cursor query(Uri uri, String[] projection, String s election, String[] selectionArgs, String sortOrder) { assert(uri.getPathSegments().isEmpty()); final MatrixCursor c = new MatrixCursor( new String[]{ Columns.ID, Columns.CITY, Columns.TEMPER ATURE }); for (int i = 0; i < sData.size(); ++i) { final WeatherDataPoint data = sData.get(i); c.addRow(new Object[]{ new Integer(i), data.city, new Integer (data.degrees) }); } return c; } @Override public String getType(Uri uri) {