setOnClickListener未工作,而setOnTouchListener正在kotlin中工作

setOnClickListener未工作,而setOnTouchListener正在kotlin中工作,kotlin,onclick,onclicklistener,ontouchlistener,ontouch,Kotlin,Onclick,Onclicklistener,Ontouchlistener,Ontouch,我正在制作一个meme maker应用程序,因此我允许用户将textview添加到图像中,并将textview拖动到imageview中的任何位置。最初,所有文本视图都处于“消失”状态,当用户单击“添加文本”按钮时,我将一次显示一个文本视图。我可以将textview拖放到任何我喜欢的地方,但onclicklistener无法工作。我想向用户显示,他们点击了文本视图,并给他们一些选项来编辑文本,如颜色、大小等。但是祝酒词从未出现,也没有错误。其代码如下: class MemeActivity :

我正在制作一个meme maker应用程序,因此我允许用户将textview添加到图像中,并将textview拖动到imageview中的任何位置。最初,所有文本视图都处于“消失”状态,当用户单击“添加文本”按钮时,我将一次显示一个文本视图。我可以将textview拖放到任何我喜欢的地方,但onclicklistener无法工作。我想向用户显示,他们点击了文本视图,并给他们一些选项来编辑文本,如颜色、大小等。但是祝酒词从未出现,也没有错误。其代码如下:

class MemeActivity : AppCompatActivity(){


    var mLayoutRoot: RelativeLayout? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_meme)
        tv1.setClickable(true);
        setSupportActionBar(meme_toolbar)
        supportActionBar!!.setDisplayHomeAsUpEnabled(true)
        meme_toolbar.setNavigationOnClickListener {
            finish()
        }
        val intent=intent
        val memeImage=intent.getStringExtra("image")
        Picasso.get().load(memeImage).into(meme_image)

        mLayoutRoot=findViewById(R.id.rl_meme)

        val added=findViewById<Button>(R.id.btn_add_text)
        val save=findViewById<ImageView>(R.id.save_meme)

        added.setOnClickListener {
            if(tv1.visibility==View.GONE){
                tv1.visibility=View.VISIBLE
            }
            else if (tv2.visibility==View.GONE){
                tv2.visibility=View.VISIBLE
            }
            else if (tv3.visibility==View.GONE){
                tv3.visibility=View.VISIBLE
            }
            else{
                Toast.makeText(this,"No More",Toast.LENGTH_SHORT).show()
            }
        }

        tv1.setOnClickListener {
            Toast.makeText(this,"clicked tv1",Toast.LENGTH_SHORT).show()
        }


        tv1.setOnTouchListener(mOnTouchListenerTv2)
        tv2.setOnTouchListener(mOnTouchListenerTv2)
        tv3.setOnTouchListener(mOnTouchListenerTv2)



    }





    override fun onBackPressed() {
        if (!mLayoutRoot!!.isFocused) {
            mLayoutRoot!!.requestFocus()
            mLayoutRoot!!.requestFocusFromTouch()
        } else {
            super.onBackPressed()
        }
    }


    val mOnTouchListenerTv2: View.OnTouchListener = object : View.OnTouchListener {
        var prevX = 0
        var prevY = 0
        override fun onTouch(v: View, event: MotionEvent): Boolean {
            val par =
                v.layoutParams as RelativeLayout.LayoutParams
            when (event.action) {

                MotionEvent.ACTION_MOVE -> {
                    par.topMargin += event.rawY.toInt() - prevY
                    prevY = event.rawY.toInt()
                    par.leftMargin += event.rawX.toInt() - prevX
                    prevX = event.rawX.toInt()
                    v.layoutParams = par
                    return true
                }
                MotionEvent.ACTION_UP -> {
                    par.topMargin += event.rawY.toInt() - prevY
                    par.leftMargin += event.rawX.toInt() - prevX
                    v.layoutParams = par
                    return true
                }
                MotionEvent.ACTION_DOWN -> {
                    prevX = event.rawX.toInt()
                    prevY = event.rawY.toInt()
                    par.bottomMargin = -2 * v.height
                    par.rightMargin = -2 * v.width
                    v.layoutParams = par
                    return true
                }
            }
            return false
        }
    }
}

class MemeActivity:appcompativity(){
var mLayoutRoot:RelativeLayout?=null
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u meme)
tv1.可设置可点击(真);
设置支持操作栏(meme_工具栏)
supportActionBar!!.setDisplayHomeAsUpEnabled(真)
meme_toolbar.setNavigationOnClickListener{
完成()
}
val intent=intent
val memeImage=intent.getStringExtra(“图像”)
毕加索.get().load(memeImage).into(meme_图像)
mLayoutRoot=findViewById(R.id.rl_meme)
添加的val=findViewById(R.id.btn\u添加\u文本)
val save=findviewbyd(R.id.save\u meme)
添加了.setOnClickListener{
if(tv1.visibility==View.GONE){
tv1.visibility=View.VISIBLE
}
else if(tv2.visibility==View.GONE){
tv2.visibility=View.VISIBLE
}
else if(tv3.visibility==View.GONE){
tv3.visibility=View.VISIBLE
}
否则{
Toast.makeText(这个“不再”,Toast.LENGTH\u SHORT.show()
}
}
tv1.setOnClickListener{
Toast.makeText(这个“点击tv1”,Toast.LENGTH\u SHORT.show()
}
tv1.setOnTouchListener(mOnTouchListenerTv2)
tv2.setOnTouchListener(mOnTouchListenerTv2)
tv3.setOnTouchListener(mOnTouchListenerTv2)
}
重写函数onBackPressed(){
如果(!mLayoutRoot!!.isFocused){
mLayoutRoot!!.requestFocus()
mLayoutRoot!!.requestFocusFromTouch()
}否则{
super.onBackPressed()
}
}
val mOnTouchListenerTv2:View.OnTouchListener=对象:View.OnTouchListener{
var prevX=0
var prevY=0
override fun onTouch(v:View,event:MotionEvent):布尔值{
瓦尔帕尔
v、 layoutParams作为RelativeLayout.layoutParams
何时(事件、动作){
MotionEvent.ACTION\u MOVE->{
Pop.TopLeal+ =事件
prevY=event.rawY.toInt()
Pr.LeftLoop+=事件.RWX.toTin()-PROVX
prevX=event.rawX.toInt()
平价债券
返回真值
}
MotionEvent.ACTION\u UP->{
Pop.TopLeal+ =事件
Pr.LeftLoop+=事件.RWX.toTin()-PROVX
平价债券
返回真值
}
MotionEvent.ACTION\u向下->{
prevX=event.rawX.toInt()
prevY=event.rawY.toInt()
Palm边际=-2×V.高度
Pr.RealEng==-2*V.宽度
平价债券
返回真值
}
}
返回错误
}
}
}
XML代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rl_meme"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MemeActivity">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/app_bar_layout_meme"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="0dp"
        android:layout_marginTop="0dp"
        android:background="@android:color/white">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/meme_toolbar"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:background="@color/colorDarkGrey">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <TextView
                    android:id="@+id/app_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Meme"
                    android:textSize="20sp"
                    android:maxLines="1"
                    android:textStyle="bold"
                    android:textColor="@android:color/white"
                    android:layout_centerVertical="true"/>

                <ImageView
                    android:id="@+id/save_meme"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_alignParentEnd="true"
                    android:src="@drawable/ic_save_black_24dp"
                    android:layout_marginEnd="5dp"
                    android:contentDescription="Meme" />

            </RelativeLayout>

        </androidx.appcompat.widget.Toolbar>

    </com.google.android.material.appbar.AppBarLayout>
    <LinearLayout
        android:id="@+id/ll_overall_textview"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:gravity="center"
        android:background="@color/colorDarkGrey"
        android:orientation="vertical"
        android:layout_below="@id/app_bar_layout_meme">

        <LinearLayout
            android:id="@+id/ll_textview"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal"
            android:gravity="center"
            android:padding="2dp"
            android:layout_marginTop="2dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp">
            <ImageView
                android:id="@+id/iv_textsize"
                android:layout_width="1dp"
                android:layout_height="wrap_content"
                android:background="@drawable/box"
                android:src="@drawable/textsize1"
                android:textColor="#6E6B6B"
                android:textSize="13sp"
                android:layout_margin="2dp"
                android:layout_weight="1"
                android:textAllCaps="false"
                style="?android:attr/buttonBarButtonStyle"/>

            <ImageView
                android:id="@+id/iv_textcolor"
                android:layout_width="1dp"
                android:layout_height="wrap_content"
                android:background="@drawable/box"
                android:scaleType="fitCenter"
                android:textColor="@color/colorGrey"
                android:layout_margin="2dp"
                android:textAllCaps="false"
                android:layout_weight="1"
                android:src="@drawable/textcolor"
                style="?android:attr/buttonBarButtonStyle"/>
            <ImageView
                android:id="@+id/iv_italic"
                android:layout_width="1dp"
                android:layout_height="wrap_content"
                android:scaleType="fitCenter"
                android:background="@drawable/box"
                android:src="@drawable/italic"
                android:layout_margin="2dp"
                android:textColor="@color/colorGrey"
                android:textAllCaps="false"
                android:layout_weight="1"
                style="?android:attr/buttonBarButtonStyle"/>
            <ImageView
                android:id="@+id/iv_bold"
                android:layout_width="1dp"
                android:layout_height="wrap_content"
                android:scaleType="fitCenter"
                android:layout_margin="2dp"
                android:background="@drawable/box"
                android:textColor="@color/colorGrey"
                android:src="@drawable/bold"
                android:textAllCaps="false"
                android:layout_weight="1"
                style="?android:attr/buttonBarButtonStyle"/>
            <ImageView
                android:id="@+id/iv_delete"
                android:layout_width="1dp"
                android:layout_height="wrap_content"
                android:scaleType="fitCenter"
                android:layout_margin="2dp"
                android:background="@drawable/box"
                android:textColor="@color/colorGrey"
                android:src="@drawable/delete"
                android:textAllCaps="false"
                android:layout_weight="1"
                style="?android:attr/buttonBarButtonStyle"/>

        </LinearLayout>

    </LinearLayout>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="0dp">

        <RelativeLayout
            android:id="@+id/fl_meme_container"
            android:layout_width="match_parent"
            android:layout_height="420dp"
            android:layout_marginTop="152dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:gravity="center_horizontal">

            <ImageView
                android:id="@+id/meme_image"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="fitXY" />

            <TextView
                android:id="@+id/tv1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:textColor="#000000"
                android:text="TEXT"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp"
                android:visibility="gone"
                tools:visibility="visible"
                android:tag="1"/>

            <TextView
                android:id="@+id/tv2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:textColor="#000000"
                android:text="TEXT"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp"
                android:visibility="gone"
                tools:visibility="visible"
                android:tag="2"/>

            <TextView
                android:id="@+id/tv3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:textColor="#000000"
                android:text="TEXT"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp"
                android:visibility="gone"
                tools:visibility="visible"
                android:tag="3"/>

        </RelativeLayout>

        <Button
            android:id="@+id/btn_add_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@id/fl_meme_container"
            android:layout_marginStart="40dp"
            android:layout_marginEnd="40dp"
            android:text="Add Text"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/fl_meme_container" />

    </androidx.constraintlayout.widget.ConstraintLayout>

</RelativeLayout>

请帮助我如何使onClicklistener工作