解决android ListView item中事件处理无法响应方法

来源:互联网 发布:国家税务总局网络培训 编辑:程序博客网 时间:2024/05/16 18:58

今天做了一个微薄关注列表,需要对某个用户进行关注,获取Button和OnItemClickListener无法响应

以下是我个我解决方案:

主布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical"     style="@style/Global_Bg">        <include layout="@layout/top_box" android:id="@+id/top_box"/>    <cn.xxxxx.xxxx.xxxxxxListViewandroid:id="@+id/fans_scrollview"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:background="@null"        android:cacheColorHint="#00000000"        android:divider="@drawable/lin"        android:fadeScrollbars="true"/></LinearLayout>

item布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <RelativeLayout        android:layout_width="fill_parent"        android:layout_height="80dip"        android:layout_marginTop="5dip"        android:descendantFocusability= "blocksDescendants" ><!-- 这个一定要设置-->                <Button            android:id="@+id/createfriendship"            android:layout_width="80dp"            android:layout_height="30dp"            android:layout_alignBottom="@+id/friendsCount"            android:layout_alignParentRight="true"            android:layout_centerVertical="true"            android:layout_marginRight="5dip"            android:background="@drawable/button_shape1"            style="@style/button_text"            android:textStyle="bold"            android:focusable = "false"/><!-- 这个一定要设置-->    </RelativeLayout></LinearLayout>

Adapter代码

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {//------省略fansView.getBtnCreateFriendship().setOnClickListener(new FriendShips(position));return convertView;}//只要看这里就可以了class FriendShips implements OnClickListener{private  int position;FriendShips(int position) {this.position = position;}@Overridepublic void onClick(View v) {int vid=v.getId();if(vid==fansView.getBtnCreateFriendship().getId()){Toast.makeText(context, "position:"+position, 2000).show();fansView.getBtnCreateFriendship().setBackgroundResource(R.drawable.button_shape3);}}}


以上是我的解决方法,大家共同进步