高仿新闻教程--Gridview的点击事件处理(2)

再次申明本教程是借鉴了若水新闻教程,我写本篇文章不在意商业传播,在于复习安卓基础

先看UI界面

在上一文章,只是简单的将主界面的实现,其中有很多BUG,如点击后背景没有换,其实每一次在实现UI界面的时候,总是想把UI美化,就把UI结构复杂化了,我在讲述下UI结构 标题栏 是有一个  HorizontalScrollView 是包括一个线性布局,然后将一个gridview填充进去。而gridview 需要用SimpleAdapter  去填充数据 ,在确定点时间处理的时候,有点难办 

我们重写simpledapter的方法 在getview方法中 会有个聚点设置view

package com.example.SundayNews.adapter;

import java.util.List;
import java.util.Map;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import com.example.SundayNews.R;


public class CustomSimpleAdapter extends SimpleAdapter
{

	public CustomSimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
	{
		super(context, data, resource, from, to);
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent)
	{
		View v = super.getView(position, convertView, parent);
		//更新第一个TextView的背景
		if (position==0)
		{
			TextView categoryTitle = (TextView)v;
			categoryTitle.setBackgroundResource(R.drawable.categorybar_item_background);
			categoryTitle.setTextColor(0XFFFFFFFF);
		}
		return v;
	}
}

然后再点击事件中加入设置 ,先恢复颜色

	category.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position,
					long id) {
				TextView categoryTitle;
				//恢复每个单元格背景色
				for (int i = 0; i < parent.getChildCount(); i++)
				{
					categoryTitle = (TextView) (parent.getChildAt(i));
					categoryTitle.setBackgroundDrawable(null);
					categoryTitle.setTextColor(0XFFADB2AD);
				}
				//设置选择单元格的背景色
				categoryTitle = (TextView) (parent.getChildAt(position));
				categoryTitle.setBackgroundResource(R.drawable.categorybar_item_background);
				categoryTitle.setTextColor(0XFFFFFFFF);
				
				Toast.makeText(MainActivity.this, categoryTitle.getText(), Toast.LENGTH_LONG).show();
				
			}
			
		});

end 

源码下载



下一地址

高仿新闻教程--新闻Item的布局复习(3)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值