Android按钮-聆听者的差异

时间:2020-08-26 10:22:45

标签: android xml kotlin

我是android开发的新手,我发现有两种方法可以使按钮执行特定任务。

第一种方法是在onCreate函数中包含一个setOnClickListener()

第二种方法是在其“活动”页面中创建一个单独的方法,并使用android:onClick="thisFunction"

使用活动的XML对其进行调用

我一直发现使用XML中的android:onClick调用函数更容易。

这样会使按钮的执行速度变慢吗? 您的专家什么时候会偏爱一种方式?

2 个答案:

答案 0 :(得分:2)

第一个

来自Java的onclick监听器

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        
    }
});

这是点击的正式方式

第二

android:onClick =“ thisFunction”

这是用来缩短代码 您应该将其用作方法

private void myfunction(
{
//Button clicked
}

我已经为您创建了一个演示应用程序:)

package com.urname.appname;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
Button mybuttonname;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity_main);
        mybuttonname=(Button)findViewById(R.id.button);
        mybuttonname.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //button clicked
            }
        });
        
    }
private void myfunction(){
        //button clicked
}
}

**

*>,但我希望使用第一个,因为某些代码无法在

中运行

方法*

**

答案 1 :(得分:1)

我认为,最好在代码中设置onClick,因为xml方式仅适用于活动。当您尝试使用片段执行此操作时,它将要求您从xml中选择一个活动来处理onClick()。想象一下,拥有一个单一的活动应用程序,其中包含很多片段,并且所有的onClick()方法都分布在MainActivity代码中。真是一团糟。

关于setOnClickListener()onClick() inside xml的效果,我认为现在几乎相同。