目录
- 本文概述:
- 方式一:在布局中添加onClick属性
- 方式二:采用匿名内部类
- 方式三:MainActivity 实现 View.OnClickListener 接口
本文概述:
-
本文介绍了,在Android中为控件添加监听的三种常见方式
- 设置控件的onClick属性
- 采用匿名内部类
- MainActivity 实现 View.OnClickListener 接口
方式一:在布局中添加onClick属性
-
编写思路:
-
在布局文件中:
- 指定控件 id
- 指定控件onClick属性
-
在MainActivity中:
- 在onCreate中拿到控件实例
- 在onCreate之外,创建监听方法(方法名与前面设置的onClick属性相同)
-
-
布局代码:指定控件的onClick属性(已经被废弃掉了)
<Button …… android:id="@+id/button" android:onClick="buttonClick" …… />
-
Activity代码:
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); //获取控件示例 button = findViewById(R.id.button); } public void buttonClick(View view) { setToast("点击了button按钮"); } public void setToast(String string){ Toast.makeText(this,string,Toast.LENGTH_SHORT).show(); } }
-
运行结果:可不可以限定Toast的提示位置?比如说将Toast放在中间去
方式二:采用匿名内部类
-
编写思路:
-
在布局文件中:指定控件 id
-
在MainActivity中
-
在onCreate内:
- 获取控件实例
- 为控件添加监听(使用匿名内部类重写onClick方法)
-
-
-
布局代码:此时不能设置onClick属性
<Button …… android:id="@+id/button" …… />
-
Java 代码
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); //获取控件示例 button = findViewById(R.id.button); //添加监听 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { setToast("点击了按钮"); } }); } public void setToast(String string){ Toast.makeText(this,string,Toast.LENGTH_SHORT).show(); } }
-
运行结果:
方式三:MainActivity 实现 View.OnClickListener 接口
-
编写思路:
-
在布局文件中:
- 指定控件 id
-
在MainActivity声明处:实现 View.OnClickListener 接口
-
在MainActivity中:
-
在onCreate方法内:
- 拿到控件实例
- 为控件注册监听器
-
在onCreate方法外:重写onClick方法
-
-
-
布局代码:
<Button …… android:id="@+id/button" …… />
-
MainActivity 代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); //获取控件示例 button = findViewById(R.id.button); //为控件注册监听器 button.setOnClickListener(this); } public void setToast(String string){ Toast.makeText(this,string,Toast.LENGTH_SHORT).show(); } @Override public void onClick(View view) { setToast("按钮被点击了"); } }
-
运行效果:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)