Android Open Source - FeedListViewDemo View Finder






From Project

Back to project page FeedListViewDemo.

License

The source code is released under:

MIT License

If you think the Android project FeedListViewDemo 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 io.bxbxbai.androiddemos.utils;
/*from  w ww  .  j  a v  a2  s  . c  om*/
/**
 * Created by baia on 14-9-21.
 */

import android.app.Activity;
import android.content.res.Resources;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * Helper for finding and tweaking a view's children
 */
public class ViewFinder {

    private static interface FindWrapper {

        View findViewById(int id);

        Resources getResources();
    }

    private static class WindowWrapper implements FindWrapper {

        private final Window window;

        WindowWrapper(final Window window) {
            this.window = window;
        }

        public View findViewById(final int id) {
            return window.findViewById(id);
        }

        public Resources getResources() {
            return window.getContext().getResources();
        }
    }

    private static class ViewWrapper implements FindWrapper {

        private final View view;

        ViewWrapper(final View view) {
            this.view = view;
        }

        public View findViewById(final int id) {
            return view.findViewById(id);
        }

        public Resources getResources() {
            return view.getResources();
        }
    }

    private final FindWrapper wrapper;

    /**
     * Create finder wrapping given view
     *
     * @param view
     */
    public ViewFinder(final View view) {
        wrapper = new ViewWrapper(view);
    }

    /**
     * Create finder wrapping given window
     *
     * @param window
     */
    public ViewFinder(final Window window) {
        wrapper = new WindowWrapper(window);
    }

    /**
     * Create finder wrapping given activity
     *
     * @param activity
     */
    public ViewFinder(final Activity activity) {
        this(activity.getWindow());
    }

    /**
     * Find view with id
     *
     * @param id
     * @return found view
     */
    @SuppressWarnings("unchecked")
    public <V extends View> V find(final int id) {
        return (V) wrapper.findViewById(id);
    }

    /**
     * Get image view with id
     *
     * @param id
     * @return image view
     */
    public ImageView imageView(final int id) {
        return find(id);
    }

    /**
     * Get compound button with id
     *
     * @param id
     * @return image view
     */
    public CompoundButton compoundButton(final int id) {
        return find(id);
    }

    /**
     * Get text view with id
     *
     * @param id
     * @return text view
     */
    public TextView textView(final int id) {
        return find(id);
    }

    /**
     * Set text of child view with given id
     *
     * @param id
     * @param content
     * @return text view
     */
    public TextView setText(final int id, final CharSequence content) {
        final TextView text = find(id);
        text.setText(content);
        return text;
    }

    /**
     * Set text of child view with given id
     *
     * @param id
     * @param content
     * @return text view
     */
    public TextView setText(final int id, final int content) {
        return setText(id, wrapper.getResources().getString(content));
    }

    /**
     * Register on click listener to child view with given id
     *
     * @param id
     * @param listener
     * @return view registered with listener
     */
    public View onClick(final int id, final OnClickListener listener) {
        View clickable = find(id);
        clickable.setOnClickListener(listener);
        return clickable;
    }

    /**
     * Register runnable to be invoked when child view with given id is clicked
     *
     * @param id
     * @param runnable
     * @return view registered with runnable
     */
    public View onClick(final int id, final Runnable runnable) {
        return onClick(id, new OnClickListener() {

            public void onClick(View v) {
                runnable.run();
            }
        });
    }

    /**
     * Register on click listener with all given child view ids
     *
     * @param ids
     * @param listener
     */
    public void onClick(final OnClickListener listener, final int... ids) {
        for (int id : ids)
            find(id).setOnClickListener(listener);
    }

    /**
     * Register runnable to be invoked when all given child view ids are clicked
     *
     * @param ids
     * @param runnable
     */
    public void onClick(final Runnable runnable, final int... ids) {
        onClick(new OnClickListener() {

            public void onClick(View v) {
                runnable.run();
            }
        }, ids);
    }

    /**
     * Set drawable on child image view
     *
     * @param id
     * @param drawable
     * @return image view
     */
    public ImageView setDrawable(final int id, final int drawable) {
        ImageView image = imageView(id);
        image.setImageDrawable(image.getResources().getDrawable(drawable));
        return image;
    }

    /**
     * Register on checked change listener to child view with given id
     *
     * @param id
     * @param listener
     * @return view registered with listener
     */
    public CompoundButton onCheck(final int id, final OnCheckedChangeListener listener) {
        CompoundButton checkable = find(id);
        checkable.setOnCheckedChangeListener(listener);
        return checkable;
    }

    /**
     * Register runnable to be invoked when child view with given id is
     * checked/unchecked
     *
     * @param id
     * @param runnable
     * @return view registered with runnable
     */
    public CompoundButton onCheck(final int id, final Runnable runnable) {
        return onCheck(id, new OnCheckedChangeListener() {

            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                runnable.run();
            }
        });
    }

    /**
     * Register on checked change listener with all given child view ids
     *
     * @param ids
     * @param listener
     */
    public void onCheck(final OnCheckedChangeListener listener, final int... ids) {
        for (int id : ids)
            compoundButton(id).setOnCheckedChangeListener(listener);
    }

    /**
     * Register runnable to be invoked when all given child view ids are
     * checked/unchecked
     *
     * @param ids
     * @param runnable
     */
    public void onCheck(final Runnable runnable, final int... ids) {
        onCheck(new OnCheckedChangeListener() {

            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                runnable.run();
            }
        }, ids);
    }
}




Java Source Code List

com.android.volley.AuthFailureError.java
com.android.volley.CacheDispatcher.java
com.android.volley.Cache.java
com.android.volley.DefaultRetryPolicy.java
com.android.volley.ExecutorDelivery.java
com.android.volley.NetworkDispatcher.java
com.android.volley.NetworkError.java
com.android.volley.NetworkResponse.java
com.android.volley.Network.java
com.android.volley.NoConnectionError.java
com.android.volley.ParseError.java
com.android.volley.RequestQueue.java
com.android.volley.Request.java
com.android.volley.ResponseDelivery.java
com.android.volley.Response.java
com.android.volley.RetryPolicy.java
com.android.volley.ServerError.java
com.android.volley.TimeoutError.java
com.android.volley.VolleyError.java
com.android.volley.VolleyLog.java
com.android.volley.toolbox.AndroidAuthenticator.java
com.android.volley.toolbox.Authenticator.java
com.android.volley.toolbox.BasicNetwork.java
com.android.volley.toolbox.ByteArrayPool.java
com.android.volley.toolbox.ClearCacheRequest.java
com.android.volley.toolbox.DiskBasedCache.java
com.android.volley.toolbox.HttpClientStack.java
com.android.volley.toolbox.HttpHeaderParser.java
com.android.volley.toolbox.HttpStack.java
com.android.volley.toolbox.HurlStack.java
com.android.volley.toolbox.ImageLoader.java
com.android.volley.toolbox.ImageRequest.java
com.android.volley.toolbox.JsonArrayRequest.java
com.android.volley.toolbox.JsonObjectRequest.java
com.android.volley.toolbox.JsonRequest.java
com.android.volley.toolbox.NetworkImageView.java
com.android.volley.toolbox.NoCache.java
com.android.volley.toolbox.PoolingByteArrayOutputStream.java
com.android.volley.toolbox.RequestFuture.java
com.android.volley.toolbox.StringRequest.java
com.android.volley.toolbox.Volley.java
io.bxbxbai.androiddemos.AppController.java
io.bxbxbai.androiddemos.ApplicationTest.java
io.bxbxbai.androiddemos.MainActivity.java
io.bxbxbai.androiddemos.activity.BaseActivity.java
io.bxbxbai.androiddemos.activity.FeedListActivity.java
io.bxbxbai.androiddemos.adapter.FeedListAdapter.java
io.bxbxbai.androiddemos.adapter.SimpleBaseAdapter.java
io.bxbxbai.androiddemos.data.FeedItem.java
io.bxbxbai.androiddemos.data.FeedResult.java
io.bxbxbai.androiddemos.utils.BitmapUtils.java
io.bxbxbai.androiddemos.utils.GsonRequest.java
io.bxbxbai.androiddemos.utils.ListViewUtils.java
io.bxbxbai.androiddemos.utils.LruBitmapCache.java
io.bxbxbai.androiddemos.utils.RequestManager.java
io.bxbxbai.androiddemos.utils.TaskUtils.java
io.bxbxbai.androiddemos.utils.ToastUtils.java
io.bxbxbai.androiddemos.utils.VersionUtils.java
io.bxbxbai.androiddemos.utils.ViewFinder.java
io.bxbxbai.androiddemos.view.FeedImageView.java