yangguangdexiaos 2015-01-24 04:42 采纳率: 0%
浏览 5323

android下GridView如何实现标题的点击事件

我写了个给GridView填充数据的程序,每个单元格的内容为课程图片+标题;但是有的标题太长了,而且只允许显示一行;现在要求图片和标题响应不同的点击事件:点击图片跳转到AActivity,点击标题则全屏显示标题的内容;我想问下大神们怎么实现GridView标题的点击事件!图片点击事件程序如下:
mGridView = (GridView)findViewById(R.id.learn_gridview);

            mAdapter = new ImageAdapter(this, mGridView, mLearnList);  

            mGridView.setAdapter(mAdapter);  
            mGridView.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    long arg3) {
                            String mCourseId = mLearnList.get(arg2).getId();
                            CourseManager.getInstance().setCourseid(mCourseId);
                            Intent intent = new Intent();
                            intent.setClass(MycourseActivity.this, AActivity.class);;
                            startActivity(intent);                                
                    }
            });
    }

那个ImageAdapter是自定义的适配器;有人建议我在适配器程序中写标题点击事件,但我是想点击标题后跳转到另一个Activity,自定义的adapter是个类,我在里面试过写标题的点击事件,但是只能对标题的样式进行设置,如更改行数等,如果在类里面写点击事件跳转到另一个Activity,好像做不到;要是能这样写就好了,这个adapter部分内容是这样的:
@Override

public View getView(int position, View convertView, ViewGroup parent) {

final String url = mList.get(position).getIconUrl();

View view;

if (convertView == null) {

view = mInflater.inflate(R.layout.grid_item, null);

} else {

view = convertView;

}

    final ImageView photo = (ImageView) view.findViewById(R.id.img);  
     title  = (TextView) view.findViewById(R.id.title);
    title.setText(mList.get(position).getTitle());
    // 给ImageView设置一个Tag,保证异步加载图片时不会乱序  
    photo.setTag(url);  
    setImageView(url, photo);  
   /* title.setOnClickListener(new OnClickListener(){

                    public void onClick(View v){                      

                   if(clicktimes == 0)
                    {
                            title.setMaxLines(3);
                            clicktimes ++ ;

                    }
                    else
                            if(clicktimes == 1)
                            {
                                    title.setMaxLines(1);
                                clicktimes = 0; ;
                            }



                    }

    });*/

    title.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {


                    }
                    });


    try{

              Field field=R.drawable.class.getField(mList.get(position).getTitle());

              int i= field.getInt(new R.drawable());

              Log.i("ImageAdapter","***************ImageAdapter.i***************"+i);

            //  return i;

            }catch(Exception e){

              Log.i("ImageAdapter",e.toString());

            //  return R.drawable.a1;

            } 
    return view;  
}  
  • 写回答

2条回答

  • bdmh 移动开发领域优质创作者 2015-01-24 04:52
    关注

    在适配器中可以写对布局中某个对象的单击,这样方便

    评论

报告相同问题?

悬赏问题

  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决