在安卓系统中,OnClick监听器在使用布尔条件时不能正常工作。

问题描述 投票:0回答:1

在下面的代码中,每次点击卡视图监听器时,两个条件都在执行.编辑和共享选项都不能正常工作.当我点击卡视图时,想执行那一次点击.如果我点击buttonViewOptions想执行这个onClick.但每次卡视图onClick时只执行了一次。

但每次点击卡视图时,只执行了 "编辑 "和 "共享 "选项。

private boolean isedit=false;
     holder.buttonViewOption.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {



                        // showPopupMenu(holder.buttonViewOption);
                        PopupMenu popup = new PopupMenu(mContext, view);
                        MenuInflater inflater = popup.getMenuInflater();
                        inflater.inflate(R.menu.menu_card, popup.getMenu());
                        // popup.setOnMenuItemClickListener(new MyMenuItemClickListener());
                        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                            @Override
                            public boolean onMenuItemClick(MenuItem item) {
                                isedit=true;
                                switch (item.getItemId()) {
                                    case R.id.edit:
                                        editItemClickListner.myEditItemClick(position);
                                        return true;
                                    case R.id.share:
                                        //item.setVisible(false);
                                        return true;
                                    default:
                                }
                                return false;

                            }
                        });
                        popup.show();

                    }

            });

            holder.cardView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    isedit=false;

                        clickListener.myItemClick(position);


                }
            });

xml:

<?xml version="1.0" encoding="utf-8"?>
<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:background="@color/back_blue"
    android:id="@+id/contact_card"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_anchorGravity="center"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" >


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:id="@+id/card_details">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:id="@+id/cards"
                android:background="@color/back_blue">


                    <androidx.cardview.widget.CardView
                        android:id="@+id/cardView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        app:cardBackgroundColor="@color/slivergray"
                        app:cardCornerRadius="5dp"
                        app:cardElevation="4dp"
                        app:cardUseCompatPadding="true">
                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:background="@color/White">


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:orientation="horizontal"
                            android:paddingBottom="5dp"
                            android:id="@+id/names">

                            <LinearLayout
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:orientation="horizontal"
                                android:id="@+id/salutations"
                                android:layout_below="@+id/names">

                                <TextView
                                    android:id="@+id/text_states"
                                    style="@style/Base.TextAppearance.AppCompat.Subhead"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_below="@+id/salutations"
                                    android:paddingLeft="16dp"
                                    android:text="salutationtype"
                                    android:textColor="@color/gray"
                                    android:textSize="18sp"
                                    android:textStyle="bold" />

                                <TextView
                                    android:id="@+id/firstname"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_toRightOf="@+id/appImage"
                                    android:padding="2sp"
                                    android:layout_below="@+id/text_states"
                                    android:textStyle="bold"
                                    android:text="@string/first_name"
                                    android:textColor="@color/gray"
                                    android:textSize="18sp"
                                    tools:ignore="RtlHardcoded"/>
                                <TextView
                                    android:id="@+id/lastname"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_below="@+id/firstname"
                                    android:layout_toRightOf="@+id/appImage"
                                    android:padding="2sp"
                                    android:textStyle="bold"
                                    android:text="@string/last_name"
                                    android:textColor="@color/gray"
                                    android:textSize="18sp"
                                    tools:ignore="RtlHardcoded"/>
                            </LinearLayout>

                            <TextView
                                android:id="@+id/textViewOptions"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentRight="true"
                                android:layout_alignParentTop="true"
                                android:layout_marginRight="16dp"
                                android:textColor="@color/linecolor"
                                android:paddingLeft="@dimen/activity_horizontal_margin"
                                android:text="&#8942;"
                                android:textAppearance="?android:textAppearanceLarge" />



                        </LinearLayout>



                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:orientation="horizontal"
                            android:id="@+id/account_names"
                            android:layout_below="@+id/names"
                            android:weightSum="4">

                            <TextView
                                android:id="@+id/text_acc"
                                style="@style/Base.TextAppearance.AppCompat.Subhead"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_weight="2"
                                android:layout_below="@+id/bill_city"
                                android:paddingLeft="16dp"
                                android:paddingRight="16dp"
                                android:text="Account Name"
                                android:textColor="@color/gray"
                                android:textSize="15sp"
                                />
                            <TextView
                                android:id="@+id/account_name"
                                style="@style/Base.TextAppearance.AppCompat.Subhead"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/text_spec"
                                android:layout_weight="2"
                                android:textStyle="bold"
                                android:textColor="@color/linecolor"
                                android:textSize="15sp"/>
                        </LinearLayout>

<!--                        <TextView-->
<!--                            android:id="@+id/facility_type"-->
<!--                            style="@style/Base.TextAppearance.AppCompat.Subhead"-->
<!--                            android:layout_width="wrap_content"-->
<!--                            android:layout_height="wrap_content"-->
<!--                            android:layout_below="@+id/account_name"-->
<!--                            android:paddingLeft="16dp"-->
<!--                            android:text="Facility Type"-->
<!--                            android:paddingRight="16dp"-->
<!--                            android:textColor="@color/gray"-->
<!--                            android:textSize="15sp"/>-->

                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:orientation="horizontal"
                            android:id="@+id/streets"
                            android:layout_below="@+id/account_names"
                            android:weightSum="4">

                            <TextView
                                android:id="@+id/text_spec"
                                style="@style/Base.TextAppearance.AppCompat.Subhead"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_weight="2"
                                android:layout_below="@+id/bill_city"
                                android:paddingLeft="16dp"
                                android:paddingRight="16dp"
                                android:text="Specialization"
                                android:textColor="@color/gray"
                                android:textSize="15sp"
                                />
                            <TextView
                                android:id="@+id/specilization"
                                style="@style/Base.TextAppearance.AppCompat.Subhead"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/text_spec"
                                android:layout_weight="2"
                                android:textColor="@color/gray"
                                android:textSize="15sp"/>

                        </LinearLayout>

                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:orientation="horizontal"
                            android:id="@+id/citys"
                            android:weightSum="4"
                            android:layout_below="@+id/streets">

                            <TextView
                                android:id="@+id/text_city"
                                style="@style/Base.TextAppearance.AppCompat.Subhead"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/citys"
                                android:paddingLeft="16dp"
                                android:text="Job Title"
                                android:paddingRight="16dp"
                                android:layout_weight="2"
                                android:textColor="@color/gray"
                                android:textSize="15sp" />
                            <TextView
                                android:id="@+id/job_title"
                                style="@style/Base.TextAppearance.AppCompat.Subhead"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/text_city"
                                android:layout_weight="2"
                                android:textColor="@color/gray"
                                android:textSize="15sp"/>

                        </LinearLayout>


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:orientation="horizontal"
                            android:id="@+id/districts"
                            android:weightSum="4"
                            android:paddingBottom="3dp"
                            android:layout_below="@+id/citys">

                            <TextView
                                android:id="@+id/text_district"
                                style="@style/Base.TextAppearance.AppCompat.Subhead"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/bill_district"
                                android:paddingLeft="16dp"
                                android:paddingRight="16dp"
                                android:text="Contact Type"
                                android:layout_weight="2"
                                android:textColor="@color/gray"
                                android:textSize="15sp"
                                />
                            <TextView
                                android:id="@+id/contact_type"
                                style="@style/Base.TextAppearance.AppCompat.Subhead"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/text_district"
                                android:layout_weight="2"
                                android:paddingRight="16dp"
                                android:textColor="@color/gray"
                                android:textSize="15sp"/>
                        </LinearLayout>




<!--                        <TextView-->
<!--                            android:id="@+id/textViewOptions"-->
<!--                            android:layout_width="wrap_content"-->
<!--                            android:layout_height="wrap_content"-->
<!--                            android:layout_alignParentRight="true"-->
<!--                            android:layout_alignParentTop="true"-->
<!--                            android:paddingLeft="@dimen/activity_horizontal_margin"-->
<!--                            android:text="&#8942;"-->
<!--                            android:textColor="@color/gray"-->
<!--                            android:layout_marginRight="10dp"-->
<!--                            android:textAppearance="?android:textAppearanceLarge" />-->
                        <View
                            android:layout_width="fill_parent"
                            android:layout_height="2dp"
                            android:background="@color/slivergray"
                            android:layout_below="@id/districts"/>

                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:orientation="horizontal"
                            android:weightSum="4"
                            android:layout_below="@id/districts">

                            <LinearLayout
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_weight="2"
                                android:orientation="horizontal">

                                <Button
                                    android:id="@+id/email"
                                    style="@style/Base.Widget.AppCompat.Button.Borderless"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:inputType="textEmailAddress"
                                    android:text="[email protected]"
                                    android:drawableLeft="@drawable/ic_email_black_24dp"
                                    android:textColor="@color/gray"
                                    android:textSize="12sp"
                                    android:textStyle="bold" />

                            </LinearLayout>


                            <LinearLayout
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:orientation="horizontal"
                                android:layout_weight="2"
                                android:layout_gravity="right">
                                <Button
                                    android:id="@+id/mobile"
                                    style="@style/Base.Widget.AppCompat.Button.Borderless"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:text="Mobile Number"
                                    android:drawableLeft="@drawable/ic_phone_black_24dp"
                                    android:inputType="number"
                                    android:textColor="@color/password"
                                    android:textSize="12sp"
                                    android:textStyle="bold" />

                            </LinearLayout>

                        </LinearLayout>
                    </RelativeLayout>
                </androidx.cardview.widget.CardView>
<!--            </com.daimajia.swipe.SwipeLayout>-->

        </LinearLayout>



    </LinearLayout>


</FrameLayout>

    </RelativeLayout>
android onclicklistener
1个回答
0
投票

你的问题是你设置了两个不同的监听器,所以最后一个在执行。

看来你使用的是RecyclerView,所以在ViewHolder类中设置你的监听器。

 public class MViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    public View x;
    public View y;

    public MViewHolder(@NonNull View itemView) {
        super(itemView);
        x = itemView.findViewById(R.id.....);
        y = itemView.findViewById(R.id.....);

        x.setOnClickListener(this);
        y.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.....:
                // code
                break;
            case R.id....;
                //code
                break;
        }
    }`
© www.soinside.com 2019 - 2024. All rights reserved.