Android Open Source - AndroidWear Restaurant List Adapter






From Project

Back to project page AndroidWear.

License

The source code is released under:

MIT License

If you think the Android project AndroidWear listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.alteridem.feedme;
/*from  w  w  w.ja  v  a2 s  . com*/
import android.content.Context;
import android.database.DataSetObserver;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class RestaurantListAdapter implements ListAdapter {
    private String TAG = "RestaurantListAdapter";

    private class Item {
        String title;
        String name;
        String summary;
        Bitmap image;
    }

    private List<Item> mItems = new ArrayList<Item>();
    private Context mContext;
    private DataSetObserver mObserver;

    public RestaurantListAdapter(Context context) {
        mContext = context;
        loadRecipeList();
    }

    private void loadRecipeList() {
        JSONObject jsonObject = AssetUtils.loadJSONAsset(mContext, Constants.RESTAURANT_LIST_FILE);
        if (jsonObject != null) {
            List<Item> items = parseJson(jsonObject);
            appendItemsToList(items);
        }
    }

    private List<Item> parseJson(JSONObject json) {
        List<Item> result = new ArrayList<Item>();
        try {
            JSONArray items = json.getJSONArray(Constants.RESTAURANT_FIELD_LIST);
            for (int i = 0; i < items.length(); i++) {
                JSONObject item = items.getJSONObject(i);
                Item parsed = new Item();
                parsed.name = item.getString(Constants.RESTAURANT_FIELD_NAME);
                parsed.title = item.getString(Constants.RESTAURANT_FIELD_TITLE);
                if (item.has(Constants.RESTAURANT_FIELD_IMAGE)) {
                    String imageFile = item.getString(Constants.RESTAURANT_FIELD_IMAGE);
                    parsed.image = AssetUtils.loadBitmapAsset(mContext, imageFile);
                }
                parsed.summary = item.getString(Constants.RESTAURANT_FIELD_SUMMARY);
                result.add(parsed);
            }
        } catch (JSONException e) {
            Log.e(TAG, "Failed to parse menu list: " + e);
        }
        return result;
    }

    private void appendItemsToList(List<Item> items) {
        mItems.addAll(items);
        if (mObserver != null) {
            mObserver.onChanged();
        }
    }

    @Override
    public int getCount() {
        return mItems.size();
    }

    @Override
    public Object getItem(int position) {
        return mItems.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public int getItemViewType(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            LayoutInflater inf = LayoutInflater.from(mContext);
            view = inf.inflate(R.layout.list_item, null);
        }
        Item item = (Item) getItem(position);
        TextView titleView = (TextView) view.findViewById(R.id.textTitle);
        TextView summaryView = (TextView) view.findViewById(R.id.textSummary);
        ImageView iv = (ImageView) view.findViewById(R.id.imageView);

        titleView.setText(item.title);
        summaryView.setText(item.summary);
        if (item.image != null) {
            iv.setImageBitmap(item.image);
        } else {
            iv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ic_noimage));
        }
        return view;
    }

    @Override
    public int getViewTypeCount() {
        return 1;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    @Override
    public boolean isEmpty() {
        return mItems.isEmpty();
    }

    @Override
    public void registerDataSetObserver(DataSetObserver observer) {
        mObserver = observer;
    }

    @Override
    public void unregisterDataSetObserver(DataSetObserver observer) {
        mObserver = null;
    }

    @Override
    public boolean areAllItemsEnabled() {
        return true;
    }

    @Override
    public boolean isEnabled(int position) {
        return true;
    }

    public String getItemName(int position) {
        return mItems.get(position).name;
    }
}




Java Source Code List

net.alteridem.feedme.AssetUtils.java
net.alteridem.feedme.BeerActivity.java
net.alteridem.feedme.Constants.java
net.alteridem.feedme.MainActivity.java
net.alteridem.feedme.MenuService.java
net.alteridem.feedme.Menu.java
net.alteridem.feedme.RestaurantActivity.java
net.alteridem.feedme.RestaurantListAdapter.java