Android添加事件android:onClick vs setOnClickListener
2017-06-30 10:08
447 查看
为Android Widgets添加点击事件处理函数又两种方法,一个是在Xml文件中添加onClick属性,然后在代码中添加对应的函数。另一个是直接在代码中添加setOnClickListener函数。两者什么区别呢?以Button控件为例讲解一下。
在Xml中添加onClick属性
在代码中添加对应的函数buttonClick,注意要添加到当前Activity对应的java类中。
两者底层没有区别。
使用第一种方法的注意事项:
1. 事件处理函数必须是public的。
2. 事件处理函数必须在Activity中定义。
3. 事件处理函数必须有一个View类型的参数。
4. 只能用在API Level 4及以后的版本。
原文:http://www.cnblogs.com/graphics/p/4680073.html
方法一
在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 4000 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
相关文章推荐
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- Android 关于setOnclickListener 对事件分发的影响
- Android DEV : setOnClickListener() vs. android:onClick
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- 从零开始学android开发-View的setOnClickListener的添加方法
- android:onClick vs setOnClickListener
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- 【android乱七八糟】关于OnClickListener事件中加switch语句讨论
- 在Android中ListView中添加两个点击事件,一个是OnItemClick,另一个是一个图片的OnClick事件
- View的setOnClickListener的添加方法
- View的setOnClickListener的添加方法
- View的setOnClickListener的添加方法
- 给按钮添加 toSearch_Button.setOnClickListener(this);出错 解决办法
- View的setOnClickListener的添加方法
- Android LinearLayout 嵌套 button 监听LinearLayout的onClickListener事件出现问题
- View的setOnClickListener的添加方法
- Android开发中CheckBox的setOnClickListener和setOnCheckedChangeListener的不同之处在哪?
- Android setOnClickListener使用方法
- 【Android每日一讲】2012.11.09 EditText与TextView共舞 - setOnKeyListener事件
- View的setOnClickListener的添加方法