Android Open Source - Android-Data-Binding Bound List Adapter






From Project

Back to project page Android-Data-Binding.

License

The source code is released under:

MIT License

If you think the Android project Android-Data-Binding 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 com.furkanbayraktar.databinding.common.adapter;
//w  w  w.  j a  v  a2 s. c o  m
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import com.furkanbayraktar.databinding.ViewBinder;
import com.furkanbayraktar.databinding.exception.UnsupportedObjectException;
import com.furkanbayraktar.databinding.logging.Logger;
import com.furkanbayraktar.databinding.model.BasePOJO;

import java.util.List;

/**
 * Created by Furkan Bayraktar.
 * Created at 8/18/14.
 * Copyright Valensas A.S.
 */
public class BoundListAdapter extends ArrayAdapter{

    private int layoutId;
    private Object[] objects;
    private Object actionObject;

    public BoundListAdapter(Context context, int resource, List objects, Object actionObject) {
        super(context, resource);

        this.objects = objects.toArray();
        this.layoutId = resource;
        this.actionObject = actionObject;

        Logger.info("A BoundListAdapter object is created.");
    }

    public BoundListAdapter(Context context, int resource, Object[] objects, Object actionObject) {
        super(context, resource);

        this.objects = objects;
        this.layoutId = resource;
        this.actionObject = actionObject;

        Logger.info("A BoundListAdapter object is created.");
    }

    @Override
    public int getCount() {
        return objects.length;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if(convertView == null){
            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(layoutId,null);
        }

        Object object = objects[position];

        if(object instanceof BasePOJO) {
            Logger.info("Binding for row at position " + position + " started.");
            ViewBinder.getInstance().bindView((BasePOJO) object, convertView, getContext(), actionObject);
            Logger.info("Binding for row at position " + position + " completed.");
        }else{
            UnsupportedObjectException ex = new UnsupportedObjectException();
            Logger.error("Unsupported object for ListView row.", ex);
        }

        return convertView;
    }

}




Java Source Code List

com.furkanbayraktar.databinding.ViewBinder.java
com.furkanbayraktar.databinding.annotations.BindedFunction.java
com.furkanbayraktar.databinding.common.adapter.BoundListAdapter.java
com.furkanbayraktar.databinding.common.external.Expression.java
com.furkanbayraktar.databinding.common.parser.ExpressionEvaluator.java
com.furkanbayraktar.databinding.common.parser.Parser.java
com.furkanbayraktar.databinding.common.resolver.AssignmentResolver.java
com.furkanbayraktar.databinding.common.resolver.FunctionResolver.java
com.furkanbayraktar.databinding.common.resolver.PathResolver.java
com.furkanbayraktar.databinding.common.resolver.ViewResolver.java
com.furkanbayraktar.databinding.common.resolver.VisibilityResolver.java
com.furkanbayraktar.databinding.exception.FunctionException.java
com.furkanbayraktar.databinding.exception.POJOParseException.java
com.furkanbayraktar.databinding.exception.ResolverException.java
com.furkanbayraktar.databinding.exception.UnsupportedObjectException.java
com.furkanbayraktar.databinding.exception.UnsupportedSyntaxError.java
com.furkanbayraktar.databinding.exception.UnsupportedViewException.java
com.furkanbayraktar.databinding.logging.Logger.java
com.furkanbayraktar.databinding.model.BasePOJO.java
com.furkanbayraktar.databindingprivate.app.ListActivity.java
com.furkanbayraktar.databindingprivate.app.MainActivity.java
com.furkanbayraktar.databindingprivate.app.model.news.Content.java
com.furkanbayraktar.databindingprivate.app.model.news.Entry.java
com.furkanbayraktar.databindingprivate.app.model.news.Feed.java
com.furkanbayraktar.databindingprivate.app.model.news.MediaGroup.java
com.furkanbayraktar.databindingprivate.app.model.news.ResponseData.java
com.furkanbayraktar.databindingprivate.app.model.news.ResponseObject.java
com.furkanbayraktar.databindingprivate.app.model.sample.SampleObject.java
com.furkanbayraktar.databindingprivate.app.network.GsonRequest.java