再次申明本教程是借鉴了若水新闻教程,我写本篇文章不在意商业传播,在于复习安卓基础
先看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(); } });
源码下载
下一地址
高仿新闻教程--新闻Item的布局复习(3)