Fork me on GitHub

Android Button 单击事件

方法一:在XML文件中指定 单击事件函数

<Button
            android:id="@+id/button1"
            android:layout_width="120dip"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView1"
            android:layout_marginTop="59dp"
            android:onClick="onclicklistener"
            android:text="@string/mybuttonstr" />

然后在代码中实现这个函数。注意,函数需要public 要不会异常。

 public void onclicklistener(View tager)
    {
          TextView textView1 =(TextView)findViewById(R.id.textView1);
    textView1.setText("西安.王磊");
    }

 

方法二:

在activity 的onCreate 中 找到button,然后给它赋上事件监听器。这个方式非常普遍。

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button but=(Button)this.findViewById(id.button1);
        
        
        but.setOnClickListener(new OnClickListener() {
            
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Log.v("MyTag", "onClick");
            }
        });
    }

 

方法三:

这个方法其实是方法二的变种。就是提前定义一个OnClickListener 的handler,然后可以将这个activity中所有的button多使用这个handler,通过判断不同id来进行不同的逻辑。这个方式适合比较多的button的情况使用。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        View.OnClickListener handler=new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                switch (v.getId()){
                case id.button1:
                    Log.v("MyTag", "Button1 OnClick");
                    break;
                case id.button2:
                    Log.v("MyTag", "Button2 OnClick");
                    break;
                }
                
            }
            
        };
        
        Button btn1=(Button)this.findViewById(id.button1);
        Button btn2=(Button)this.findViewById(id.button2);
        
        btn1.setOnClickListener(handler);
        btn2.setOnClickListener(handler);

}

posted @   磊哥|www.javacn.site  阅读(433)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
历史上的今天:
2011-12-07 八伟大的工具,Windows用户永远都不想错过
点击右上角即可分享
微信分享提示