Android 关于ExpandableListView子视图的问题&x27;s按钮ClickListener
我正在尝试为我的餐厅制作一个应用程序,这是我之前提出的关于我所面临的问题的问题,问题已经解决,但是,您会注意到在ChildView中有一个按钮是“添加”,这与我之前的查询类似 您可以看到,我有“添加”按钮,我单击的地方我希望显示我的相对布局,但是,这里有一个问题是我使用了自定义的expandableListView,它是这样的:Android 关于ExpandableListView子视图的问题&x27;s按钮ClickListener,android,expandablelistview,childviews,Android,Expandablelistview,Childviews,我正在尝试为我的餐厅制作一个应用程序,这是我之前提出的关于我所面临的问题的问题,问题已经解决,但是,您会注意到在ChildView中有一个按钮是“添加”,这与我之前的查询类似 您可以看到,我有“添加”按钮,我单击的地方我希望显示我的相对布局,但是,这里有一个问题是我使用了自定义的expandableListView,它是这样的: class NonScrollExpandableListView : ExpandableListView { constructor(context: Conte
class NonScrollExpandableListView : ExpandableListView {
constructor(context: Context) : super(context) {}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {}
constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(context, attrs, defStyle) {}
override fun setAdapter(adapter: ExpandableListAdapter?) {
super.setAdapter(adapter)
}
override fun setOnChildClickListener(onChildClickListener: OnChildClickListener) {
super.setOnChildClickListener(onChildClickListener)
}
override fun expandGroup(groupPos: Int) : Boolean {
return super.expandGroup(groupPos)
}
override fun expandGroup(groupPos: Int, animate: Boolean) : Boolean {
return super.expandGroup(groupPos, animate)
}
override fun isGroupExpanded(groupPosition: Int): Boolean {
return super.isGroupExpanded(groupPosition)
}
public override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
val heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(
Integer.MAX_VALUE shr 2, MeasureSpec.AT_MOST)
super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom)
val params = layoutParams
params.height = measuredHeight
}
}
它不是可滚动的listView
这是我的XML代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:orientation="horizontal">
<androidx.cardview.widget.CardView
android:layout_width="95dp"
android:layout_height="100dp"
android:baselineAligned="false"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
app:cardBackgroundColor="#FF682F"
android:layout_marginBottom="20dp"
app:cardCornerRadius="13dp">
<ImageView
android:id="@+id/Restaurant_Image_List"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:layout_marginStart=".5dp"
android:layout_marginEnd=".5dp"
android:layout_marginTop=".5dp"
android:layout_marginBottom=".5dp"
/>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/ClickAddToCart"
android:layout_width="80dp"
android:layout_height="25dp"
android:layout_marginTop="93dp"
android:layout_marginStart="16.5dp"
android:layout_marginBottom="5dp"
android:layout_marginEnd="5dp"
app:cardCornerRadius="3dp">
<Button
android:id="@+id/RestaurantAddItem"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="#FFCE55"
android:background="?attr/selectableItemBackground"
android:text="ADD"
android:textStyle="bold"/>
</androidx.cardview.widget.CardView>
<TextView
android:id="@+id/RestaurantItemAvailability"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
android:text="Available"
android:layout_alignParentEnd="true"
android:layout_marginTop="50dp"
android:layout_marginEnd="20dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_marginStart="100dp"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="100dp">
<TextView
android:id="@+id/RestaurantItemName"
android:layout_marginTop="8dp"
android:layout_marginStart="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="16sp"
android:text="Item Name"/>
<TextView
android:id="@+id/RestaurantItemPrice"
android:layout_marginTop="10dp"
android:layout_marginStart="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="15dp"
android:textStyle="bold"
android:text="Price"/>
</RelativeLayout>
</LinearLayout>
<RelativeLayout
android:id="@+id/ClickAddToCart2"
android:visibility="invisible"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:layout_width="match_parent"
android:layout_height="100dp">
<ImageButton
android:id="@+id/ButtonPlus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="?attr/selectableItemBackground"
app:srcCompat="@drawable/ic_plus"
android:layout_alignParentEnd="true"
android:layout_marginEnd="85dp"/>
<ImageButton
android:id="@+id/ButtonMinus"
android:layout_width="16dp"
android:layout_height="1dp"
android:layout_marginTop="17dp"
android:gravity="center"
android:background="?attr/selectableItemBackground"
app:srcCompat="@drawable/ic_minus"
android:layout_alignParentEnd="true"
android:layout_marginEnd="15dp"/>
<TextView
android:id="@+id/NumberOfItemAdded"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:textSize="30sp"
android:layout_alignParentEnd="true"
android:layout_marginEnd="50dp"
android:layout_marginTop="20dp"/>
<androidx.cardview.widget.CardView
android:layout_width="70dp"
android:layout_height="20dp"
android:layout_marginTop="70dp"
android:layout_alignParentEnd="true"
android:layout_marginEnd="24dp"
app:cardCornerRadius="3dp">
<Button
android:id="@+id/RestaurantAddItem2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Add"
android:textSize="10sp"
android:textColor="#FFCE55"
android:background="?attr/selectableItemBackground"
tools:ignore="SmallSp" />
</androidx.cardview.widget.CardView>
</RelativeLayout>
在这里,当我单击“添加”按钮时,我希望执行以下代码:
restaurantItemAvailability.setVisibility(View.GONE);
clickToAddCart.setVisibility(View.GONE);
clickAddToCart2.setVisibility(View.VISIBLE);
Add的click listener工作正常,因为我使用Toast检查它是否工作正常,并且它完美地执行了Toast,但是上面的代码没有执行,我不知道为什么。
有人能帮我吗
提前谢谢。我终于通过使用另一个常量解决了这个问题,我保存了click值并检查了该值,并在条件语句中使用了它,问题得到了解决。@V-rundPuro-hit你能检查一下我的代码吗?我在哪里做错了,因为我使用的是你在以前的帖子中提到的代码分享您的完整代码。
addButton
,ListView的
适配器的onClickListener
在哪里?@LalitFauzdar我添加了getChildView。if部分被执行,else部分也在工作但没有执行。但是上面的代码在else
语句中。如果您可以看到Toast
,它将如何执行?如果要执行代码,请将其放入If{}
并删除else
。如果If
条件始终为真,则不会执行else
语句,If-else
的基本原则@AthosTokbi,我检查了您的代码,根据您的解释,我看到else部分工作正常,但代码没有执行,您的意思是,在测试应用程序时,操作没有发生,但是在其他条件下,Toast部分工作正常。正确的???
restaurantItemAvailability.setVisibility(View.GONE);
clickToAddCart.setVisibility(View.GONE);
clickAddToCart2.setVisibility(View.VISIBLE);