Android 如何在单击项目时在ListView ListItem中显示/隐藏RelativeLayout?
在我的xml中,我有: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">
<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中,我获得单击的视图,然后获得其子相对布局,以使其可见,它应该使单击项中的视图可见。但它并没有做到这一点,它在随机索引上几乎看不到其他视图。