ywspace 2011-12-13 10:01
浏览 235
已采纳

GridView 设置项监听事件了 怎么不起效?各位大牛帮忙给看看,谢了先

[code="java"]
package cn.ywspace.demo;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;
import android.app.ActivityGroup;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;

import android.widget.GridView;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

public class FirstProActivity extends Activity {
/** Called when the activity is first created. */

GridView gView;


List<Integer> icoList;
List<Integer> unselIcoList;
List<String> titlelList;
int lastClickNum,curClickNum;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    gView=(GridView)findViewById(R.id.grid);


    SetData();


    GridAdper gridAdper=new GridAdper(this);


    gView.setAdapter(gridAdper);
    gView.setNumColumns(4);
    gView.setGravity(Gravity.CENTER);
    gView.setSelector(new ColorDrawable(Color.TRANSPARENT));
    gView.setBackgroundResource(R.drawable.tab_bg);



    setListener();
}

private void setListener(){


    gView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub

            Log.i("ywspace",""+position);

            lastClickNum=curClickNum;
            curClickNum=position;



            if (curClickNum==lastClickNum) {
                return;
            }

            RelativeLayout layout=(RelativeLayout)gView.getChildAt(position);
            layout.setBackgroundResource(R.drawable.product_title_bg);
            layout.getChildAt(0).setBackgroundResource(icoList.get(position));

            for (int i = 0; i < icoList.size(); i++) {
                if(i!=position){
                    RelativeLayout temp=(RelativeLayout)gView.getChildAt(i);
                    temp.setBackgroundDrawable(null);
                    temp.getChildAt(0).setBackgroundResource(unselIcoList.get(i));
                }
            }

        }

    });
}
private void SetData(){
    icoList=new ArrayList<Integer>();
    unselIcoList=new ArrayList<Integer>();
    titlelList=new ArrayList<String>();

    icoList.add(R.drawable.tab_home_selected);
    unselIcoList.add(R.drawable.tab_home_normal);

    icoList.add(R.drawable.tab_category_selected);
    unselIcoList.add(R.drawable.tab_category_normal);

    icoList.add(R.drawable.tab_rank_selected);
    unselIcoList.add(R.drawable.tab_rank_normal);

    icoList.add(R.drawable.tab_app_select);
    unselIcoList.add(R.drawable.tab_app_unselect);      

    titlelList.add("主页");
    titlelList.add("分类");
    titlelList.add("排行");
    titlelList.add("管理");

}
private class GridAdper extends BaseAdapter{

    LayoutInflater inflater;
    public GridAdper(Context context){
        inflater=LayoutInflater.from(context);
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return titlelList.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ItemHolder holder;
        if (convertView==null) {
            convertView=(View)inflater.inflate(R.layout.grid_item, null);
            holder=new ItemHolder();

            holder.img=(ImageView)convertView.findViewById(R.id.img);
            holder.txt=(TextView)convertView.findViewById(R.id.title);

            convertView.setTag(holder);

        }else{
            holder=(ItemHolder)convertView.getTag();
        }

        holder.img.setBackgroundResource(unselIcoList.get(position));
        holder.txt.setText(titlelList.get(position));           

        return convertView;
    }



}
private final class ItemHolder{
    public ImageView img;
    public TextView txt;
}

}
[/code]
[code="xml"]
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:id="@+id/fliper"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="bottom"
android:layout_weight="0"
/>


[/code]

  • 写回答

2条回答 默认 最新

  • yy1230 2011-12-13 11:37
    关注

    :o 帮不上忙了,你慢慢的把一些东西删了试试,慢慢找吧,可能是其它组件问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图的问题
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名