您好我为GridView父
实现了setOnClickListener代码:
主要布局
<LinearLayout
android:id="@+id/profile_ll_friends"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:descendantFocusability="blocksDescendants"
android:background="@drawable/linear_layout_border"
android:orientation="vertical" >
<ImageView
android:id="@+id/profile_img_friends"
android:layout_width="@dimen/profile_img_apf_width"
android:layout_height="@dimen/profile_img_apf_height"
android:layout_gravity="center_horizontal"
android:contentDescription="@string/cont_desc"
android:scaleType="fitXY"
android:src="@drawable/bg_480_800"
android:visibility="gone" />
<GridView
android:id="@+id/friends_photos_gv"
android:layout_width="@dimen/profile_img_apf_width"
android:layout_height="@dimen/profile_img_apf_height" >
</GridView>
<TextView
android:id="@+id/profile_tv_friends"
android:layout_width="@dimen/profile_img_apf_width"
android:layout_height="@dimen/txt_size_height_profile"
android:layout_gravity="center_horizontal"
android:layout_marginTop="0dp"
android:background="@color/txt_common_white"
android:gravity="center"
android:text="@string/txt_Friends"
android:textColor="@color/txt_common_black"
android:textSize="@dimen/txt_size" />
</LinearLayout>
活动
LinearLayout friendsLayout = (LinearLayout) findViewById(R.id.profile_ll_friends);
friendsLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ProfileActivity.this, FriendsListActivity.class);
startActivity(intent);
}
});
适配器布局
<?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" >
<ImageView
android:id="@+id/friends_photos_img"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_horizontal"
android:contentDescription="@string/cont_desc"
android:scaleType="fitXY"
android:src="@drawable/bg_480_800"
android:visibility="visible" />
</LinearLayout>
单击TextView(profile_tv_friends)区域时,setOnClickListener正常工作但单击GridView(friends_photos_gv)区域时,setOnClickListener无法正常工作
对于这个问题,我试过
android:focusable="false"
android:focusableInTouchMode="false"
适用于适配器布局中的ImageView(friends_photos_img)并尝试了
android:descendantFocusability="blocksDescendants"
对于LinearLayout(profile_ll_friends),但是单击GridView区域时setOnClickListener不起作用
答案 0 :(得分:1)
您应该使用:
friendlayout.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
// DO something
}
});
答案 1 :(得分:1)
Gridview就像列表视图一样可以尝试这样的事情。
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
// DO something
}
});
有关详细信息,请查看此链接。 GridView
另一个错误可能是你在这里引用了linearlayout而不是实际的GridView。
LinearLayout friendsLayout = (LinearLayout) findViewById(R.id.profile_ll_friends);
答案 2 :(得分:0)
替换:
friendsLayout.setOnClickListener(new OnClickListener() {
使用:
friendsLayout.setOnClickListener(new View.OnClickListener() {