Android Open Source - karin Robo View Holder






From Project

Back to project page karin.

License

The source code is released under:

MIT License

If you think the Android project karin 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 cc.wanko.karin.app.utils;
/*from  w w  w  .j av  a  2s .c  om*/
import android.view.View;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

import roboguice.inject.InjectView;

/**
 * Created by eagletmt on 14/05/05.
 */
public class RoboViewHolder {
    public RoboViewHolder(View root) {
        injectViews(root);
    }

    private void injectViews(View view) {
        for (Field field : this.getClass().getDeclaredFields()) {
            if (field.isAnnotationPresent(InjectView.class)) {
                if (Modifier.isStatic(field.getModifiers())) {
                    throw new UnsupportedOperationException("@InjectView is used to static field " + field.getName());
                }
                if (!View.class.isAssignableFrom(field.getType())) {
                    throw new UnsupportedOperationException("@InjectView is used to non-view field " + field.getName());
                }
                injectView(view, field);
            }
        }
    }

    private void injectView(View view, Field field) {
        InjectView annot = field.getAnnotation(InjectView.class);
        field.setAccessible(true);
        try {
            field.set(this, view.findViewById(annot.value()));
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        }
    }
}




Java Source Code List

cc.wanko.karin.app.activities.MainActivity.java
cc.wanko.karin.app.activities.OAuthActivity.java
cc.wanko.karin.app.activities.UserListActivity.java
cc.wanko.karin.app.activities.UserStatusesActivity.java
cc.wanko.karin.app.adapters.MainPagerAdapter.java
cc.wanko.karin.app.adapters.StatusListAdapter.java
cc.wanko.karin.app.adapters.UserListListAdapter.java
cc.wanko.karin.app.client.HomeTimelineSource.java
cc.wanko.karin.app.client.StatusSource.java
cc.wanko.karin.app.client.TwitterProvider.java
cc.wanko.karin.app.client.UserListSource.java
cc.wanko.karin.app.client.UserStatusSource.java
cc.wanko.karin.app.database.Database.java
cc.wanko.karin.app.fragments.StatusListFragment.java
cc.wanko.karin.app.fragments.UserListListFragment.java
cc.wanko.karin.app.textbuilder.MediaSegment.java
cc.wanko.karin.app.textbuilder.MentionSegment.java
cc.wanko.karin.app.textbuilder.Segment.java
cc.wanko.karin.app.textbuilder.StatusTextBuilder.java
cc.wanko.karin.app.textbuilder.UrlSegment.java
cc.wanko.karin.app.utils.LruImageCache.java
cc.wanko.karin.app.utils.RoboViewHolder.java