今天做了一个微薄关注列表,需要对某个用户进行关注,获取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.xxxxxxListView
android: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代码
@Override
public 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;
}
@Override
public 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);
}
}
}
以上是我的解决方法,大家共同进步