Android 实现ListView 内部的点击事件

ListView 是在做android 开发中用得算多的一个控件了,用它也是很方便的,只需要写好适配器便能实现我们想要的各种样式。在学习的过程中,刚好需要实现一个listView 内部不同控件的点击事件处理,所以就顺便做一下记录。
首先是在layout中先写好布局的控件,并且将listview黙认的点击效果取消,这个直接在布局文件中添加一行代码就行。

android:listSelector="@android:color/transparent"
接下来就是写ListViewAdapter这个类了。点击事件写在ListViewAdapter的getView()方法中,并且给控件设置Tag。
 h.img_reply.setOnClickListener(this);
        h.img_reply.setTag(position);

主要实现的方法是在ListViewAdapter该类中添加一个自定义的LVCallback接口,在接口类中定义需要点击事件的控件方法,当该控件被点击到了调用相应的控件方法。

 case R.id.img_praise:
                mCallback.onPraiseClick(v);
                break;

最后是在设置activity中实现该接口,并处理相应的点击事件。

@Override
    public void onPraiseClick(View v) {
        Toast.makeText(MainActivity.this, "点赞成功!,位置 : "
                + (Integer) v.getTag(), Toast.LENGTH_SHORT).show();
        adapter.isPraised.put((Integer) v.getTag(), R.mipmap.icon_praised);
        adapter.notifyDataSetChanged();
    }

到此我们想要的功能就已基本实现。本例主要是介绍android中接口回调的使用,像有时候我们在使用多个fragment,而想要实现在一个fragment中处理一些东西之后,想要让另外的fragment作出相应改变一些控件的状态时,此时就可以使用接口来实现了。(当然,也还可以使用广播。)
例子下载地址:
http://download.csdn.net/detail/u013318697/9423831

猜你喜欢

转载自blog.csdn.net/u013318697/article/details/50615129
今日推荐