Android 基础-1.0 按钮4种点击事件
2019-06-16 17:48 jiangys 阅读(513) 评论(0) 编辑 收藏 举报第一种 测试使用
直接xml添加,平时在自己的测试demo中使用比较多。
1、直接在xml里给按钮添加点击事件
android:onClick="btn_click"
2、按住option + enter 给btn_click快捷创建activity代码
public void btn_click(View view) { //sout System.out.println("哈哈哈,我被点击了"); Toast.makeText(this, "哈哈哈,我被点击了", Toast.LENGTH_SHORT).show(); }
第二种 按钮很多
当按钮有很多的时候,可以使用这一种
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_click = findViewById(R.id.button);
btn_click.setOnClickListener(this);
}
@Override
public void onClick(View v) {
System.out.println("哈哈哈,我被点击了3");
Toast.makeText(MainActivity.this, "哈哈哈,我被点击了3", Toast.LENGTH_SHORT).show();
}
}
按钮很多的情况
btn_call.setOnClickListener(this); btn_call2.setOnClickListener(this); btn_call3.setOnClickListener(this); btn_call4.setOnClickListener(this); @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: callPhone(); break; case R.id.button2: callPhone(); break; case R.id.button3: callPhone(); break; case R.id.button4: System.out.println("哈哈哈"); break; default: break; } }
第三种 内部类(常用)
定义一个内部类去实现按钮的点击事件
注意:这种方式会覆盖掉第一种
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_click = findViewById(R.id.button); btn_click.setOnClickListener(new MyClickListener()); } class MyClickListener implements View.OnClickListener { @Override public void onClick(View v) { System.out.println("哈哈哈,我被点击了2"); Toast.makeText(MainActivity.this, "哈哈哈,我被点击了2", Toast.LENGTH_SHORT).show(); } } }
第四种 匿名内部类(常用)
public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_click = findViewById(R.id.button); btn_click.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("哈哈哈,我被点击了4"); Toast.makeText(MainActivity.this, "哈哈哈,我被点击了4", Toast.LENGTH_SHORT).show(); } }); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端