软件编程
位置:首页>> 软件编程>> Android编程>> Android onClick方法与setOnClickListener方法对比

Android onClick方法与setOnClickListener方法对比

作者:lqh  发布时间:2022-02-09 22:21:40 

标签:Android,onClick,setOnClickListener

Android onClick 与 setOnClickListener区别

为Android Widgets添加点击事件处理函数又两种方法,一个是在Xml文件中添加onClick属性,然后在代码中添加对应的函数。另一个是直接在代码中添加setOnClickListener函数。两者什么区别呢?以Button控件为例讲解一下。

方法一

在Xml中添加onClick属性


<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <Button
   android:id="@+id/mybutton"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_centerInParent="true"
   android:text="Press Me"
   android:onClick="buttonClick"/>
</RelativeLayout>

在代码中添加对应的函数buttonClick,注意要添加到当前Activity对应的java类中。


public class MainActivity extends AppCompatActivity {

@Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
 }

public void buttonClick(View view) {
   Toast.makeText(this, "Button was clicked", Toast.LENGTH_SHORT).show();
 }

// ....
}

方法二


public class MainActivity extends AppCompatActivity {

@Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

Button button = (Button)findViewById(R.id.mybutton);
   button.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
       Toast.makeText(MainActivity.this, "Button was clicked", Toast.LENGTH_SHORT).show();
     }
   });
 }
}

两者的共同点

两者底层没有区别。

两者的区别

使用第一种方法的注意事项:

1. 事件处理函数必须是public的。

2. 事件处理函数必须在Activity中定义。

3. 事件处理函数必须有一个View类型的参数。

4. 只能用在API Level 4及以后的版本。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://www.cnblogs.com/graphics/p/4680073.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com