Android 如何在单击项目时在ListView ListItem中显示/隐藏RelativeLayout?

Android 如何在单击项目时在ListView ListItem中显示/隐藏RelativeLayout?,android,android-layout,Android,Android Layout,在我的xml中,我有: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="#FFFFFF" android:id="@+id/listItemMainRelativeLayout">

在我的xml中,我有:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" android:layout_width="wrap_content"
    android:background="#FFFFFF" android:id="@+id/listItemMainRelativeLayout">


    <RelativeLayout android:id="@+id/myFavourtiesPlaylistTextRelativeLayout"
        android:layout_centerVertical="true" android:layout_height="wrap_content" android:layout_width="fill_parent">
        <TextView android:layout_marginBottom="1dp"..... android:textColor="#000002"
            android:layout_width="wrap_content"></TextView>
        <TextView android:visibility="visible" .... android:id="@+id/myFavouritesPlaylistDescription"
            android:textColor="#000006"></TextView>
    </RelativeLayout>

    <RelativeLayout android:id="@+id/myFavourtiesPlaylistButtonRelativeLayout"
        android:layout_alignParentRight="true" android:layout_centerVertical="true"
        android:layout_width="fill_parent" android:layout_height="wrap_content" android:focusable="false" android:focusableInTouchMode="false" android:visibility="gone">

        <ImageButton android:id="@+id/playListPlayButton"
            android:layout_height="wrap_content" android:layout_width="wrap_content"
            android:visibility="visible" android:background="@drawable/play_button"
            android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:focusable="false" android:focusableInTouchMode="false"/>
    </RelativeLayout>

</RelativeLayout> 

我的Java代码是:

public OnItemClickListener listOnItemClickListener = new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View v, int position,
            long id) {

        if (previousSelectedListItem != -1) {

            Toast.makeText(getActivity(),
                    "Hidding Position:" + previousSelectedListItem,
                    Toast.LENGTH_LONG).show();

            RelativeLayout mainRelativeLayout = (RelativeLayout) v;

            RelativeLayout buttonsRelativeLayout = (RelativeLayout) mainRelativeLayout
                    .findViewById(R.id.myFavourtiesPlaylistButtonRelativeLayout);
            buttonsRelativeLayout.setVisibility(View.GONE);
        }

        Toast.makeText(getActivity(), "ShowingPosition:" + position,
                Toast.LENGTH_LONG).show();

        RelativeLayout mainRelativeLayout = (RelativeLayout) v;

        RelativeLayout buttonsRelativeLayout = (RelativeLayout) mainRelativeLayout
                .findViewById(R.id.myFavourtiesPlaylistButtonRelativeLayout);
        buttonsRelativeLayout.setVisibility(View.VISIBLE);

        previousSelectedListItem = position;

    }
};
public-OnItemClickListener-listonemclicklistener=new-OnItemClickListener(){
@凌驾
公共视图单击(AdapterView arg0,视图v,内部位置,
长id){
如果(以前选择的ListItem!=-1){
Toast.makeText(getActivity(),
“隐藏位置:”+先前选择的列表项,
Toast.LENGTH_LONG).show();
RelativeLayout mainRelativeLayout=(RelativeLayout)v;
RelativeLayout按钮RelativeLayout=(RelativeLayout)主RelativeLayout
.findViewById(R.id.MyFavorites播放按钮相对布局);
按钮RelativeLayout.setVisibility(View.GONE);
}
Toast.makeText(getActivity(),“ShowingPosition:+position,
Toast.LENGTH_LONG).show();
RelativeLayout mainRelativeLayout=(RelativeLayout)v;
RelativeLayout按钮RelativeLayout=(RelativeLayout)主RelativeLayout
.findViewById(R.id.MyFavorites播放按钮相对布局);
按钮RelativeLayout.setVisibility(View.VISIBLE);
previousSelectedListItem=位置;
}
};
预期行为:单击项目后,我想使项目中的
MyFavorities播放按钮相对布局可见


发生了什么:
MyFavoritiesPlaylayButtonRelativeLayout
单击的项目保持隐藏,但其他一些随机项目变为可见。

我认为在列表视图中有一个RelativeLayout是问题所在。我今天在一个类似的问题上浪费了6个小时

尝试阅读此线程,它将提供修复


为什么要使用McClickListener?这是针对ListView的。创建onClickListener()。是的,你是对的,我正在listvew中使用它,很抱歉我没有提到这一点。我不确定我是否理解这一点。发布您的全部代码。在我的listner中,我获得单击的视图,然后获得其子相对布局,以使其可见,它应该使单击项中的视图可见。但它并没有做到这一点,它在随机索引上几乎看不到其他视图。