
Разработка мобильных приложений — это всегда компромисс между тем, что хочется сделать и тем, что позволяет сделать платформа устройства. В этой статье рассказывается о том, как увеличить возможности приложения Android с помощью Golang.
Android Developer
public class MainActivity extends ActionBarActivity
implements LoaderManager.LoaderCallbacks<DataHolder>{
...
@Override
public void onLoadFinished(Loader<DataHolder> loader, DataHolder data) {
if ( loader.getId() == DataLoader.LOADER_ICONS_ID ){
doIcons( data.getIcons() );
} else if( loader.getId() == DataLoader.LOADER_STYLES_ID ){
doStyles( data.getStyles() );
} else if( loader.getId() == DataLoader.LOADER_ICONSETS_ID ){
doIconSets( data.getIconSets() );
}
{
"1":{"name":"Samsung","price":51200.6},
"2":{"name":"Lg","price":5400.6},
"3":{"name":"Alcatel","price":4500.6},
"4":{"name":"iPhone","price":4800.3},
"7":{"name":"iPad","price":2850.1}
}
public class GoodsItem {
String name;
float price;
}
private String url = "http://192.168.1.103/shop.json";
private static final int LOADER_GOODS_ID = 1;
Map<Integer, GoodsItem> mGoodsMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
FeedLoader.with(this).addLoader(LOADER_GOODS_ID, url, HashMap.class, new DelivererFeedLoader.Listener<Map<Integer, GoodsItem>>() {
@Override
public void onResponse(int loaderId,
Map<Integer, GoodsItem> goodsMap) {
mGoodsMap = goodsMap;
for (Map.Entry<Integer, GoodsItem> entry : mGoodsMap.entrySet()) {
Log.d(TAG , "Goods item : " + entry.getKey() + " : " + entry.getValue());
}
}
@Override
public void onErrorResponse(VolleyError data) {
Log.d(TAG , "onErrorResponse :" + data);
}
}).start(LOADER_GOODS_ID, this);