再次申明本教程是借鉴了若水新闻教程,我写本篇文章不在意商业传播,在于复习安卓基础
先看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
下一地址