Android 分享机顶盒项目的封装类《GridView》(二)(转)

简介: Android 分享机顶盒项目的封装类《GridView》(二)(转)

该 类的全部源码为:

GridViewExt package com.yaomei.widget;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.yaomei.activity.adapter.AppsAdapter;
import com.yaomei.activity.info.R;
public class gridViewExt extends LinearLayout {
    public List<HashMap<String, Object>> tableRowsList;
    private List<HashMap<String, Object>> app = new ArrayList<HashMap<String, Object>>();
    private AppsAdapter adapter;
    onItemClickListener onItemClickEvent;
    onLongPressExt onLongPress;
    int checkRowID = -1; // 选中行的下标
    int checkColumnID = -1; // 选中列的下标
    int lastRowCount = -1; // 最后一行的总数
    private int ColumnCount; // 每列的总数
    public void setColumnCount(int count) {
        this.ColumnCount = count;
    }
    public int getColumnCount() {
        return ColumnCount;
    }
    public interface onItemClickListener {
        public boolean onItemClick(int position, MotionEvent event, View view);
    }
    public interface onLongPressExt {
        public boolean onLongPress(View view);
    }
    public gridViewExt(Context context) {
        this(context, null);
        // TODO Auto-generated constructor stub
    }
    public gridViewExt(Context context, AttributeSet attrs) {
        super(context, attrs);
        int resouceID = -1;
        TypedArray typedArray = context.obtainStyledAttributes(attrs,
                R.styleable.GridViewExt);
        int N = typedArray.getIndexCount();
        for (int i = 0; i < N; i++) {
            int attr = typedArray.getIndex(i);
            switch (attr) {
            case R.styleable.GridViewExt_ColumnCount:
                resouceID = typedArray.getInt(
                        R.styleable.GridViewExt_ColumnCount, 0);
                setColumnCount(resouceID);
                break;
            }
        }
        typedArray.recycle();
    }
    public void setOnItemClickListener(onItemClickListener click) {
        this.onItemClickEvent = click;
    }
    public void setOnLongPressListener(onLongPressExt longPress) {
        this.onLongPress = longPress;
    }
    public void NotifyDataChange() {
        removeAllViews();
    }
    void bindView() {
        removeAllViews();
        int count = adapter.getCount();
        TableCell[] cell = null;
        int j = 0;
        LinearLayout layout;
        tableRowsList = new ArrayList<HashMap<String, Object>>();
        for (int i = 0; i < count; i++) {
            j++;
            final int position = i;
            if (j > getColumnCount() || i == 0) {
                cell = new TableCell[getColumnCount()];
            }
            final View view = adapter.getView(i, null, null);
            view.setOnTouchListener(new OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    // TODO Auto-generated method stub
                    unCheckPressed();
                    checkRowID = -1;
                    checkColumnID = -1;
                    if (onItemClickEvent != null) {
                        onItemClickEvent.onItemClick(position, event, view);
                    }
                    return false;
                }
            });
相关文章
|
2天前
|
达摩院 安全 Java
80 PM撸代码之Android【武侠讲封装、继承、多态】
80 PM撸代码之Android【武侠讲封装、继承、多态】
8 0
|
5天前
|
XML Java Android开发
Android 分享机顶盒项目的封装类《GridView》(三)(转)
Android 分享机顶盒项目的封装类《GridView》(三)(转)
12 2
|
XML Android开发 UED
Android GridView子元素item按击交互设计:背景颜色改变
《Android GridView子元素按击交互设计:背景颜色改变》 效果图: 大致的需求和ListView相仿,就是要求用户点击GridView中的子元素时候,要有一定的交互响应(背景颜色改变表明用户的操作)。
874 0
|
3天前
|
设计模式 算法 前端开发
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
|
3天前
|
XML Android开发 数据格式
ConstraintLayout 2,Android高级开发面试
ConstraintLayout 2,Android高级开发面试
|
1天前
|
编解码 数据库 Android开发
安卓应用开发:打造高效用户界面的五大技巧
【5月更文挑战第18天】在竞争激烈的应用市场中,一个流畅且直观的用户界面(UI)对于安卓应用的成功至关重要。本文将探讨五种提升安卓应用用户界面性能的技巧,包括合理布局设计、优化资源使用、利用硬件加速、内存管理以及响应式编程。通过这些方法,开发者可以创建出既美观又高效的应用体验,从而吸引和保留用户。