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

时间:2022-08-30 21:27:36

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

先看UI界面

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

在上一文章,只是简单的将主界面的实现,其中有很多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)