Android常用控件Button

embedded/2024/9/23 10:46:43/

文章目录

  • Android常用控件Button
    • 两种方式实现点击事件的监听
      • 使用匿名类的方式
      • 使用实现接口的方式
    • Android控件的可见属性

Android常用控件Button

Button是程序用于和用户进行交互的一个重要控件,相信你对这个控件已经非常熟悉了,因为我们用了太多次Button。我们可以在activity_main.xml中这样加入Button:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
...
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>

我们使用android:id给当前控件定义了一个唯一标识符。然后使用**android:layout_width和android:layout_height指定了控件的宽度和高度。**Android中所有的控件都具有这两个属性,可选值有3种:match_parent、fill_parent和wrap_content。其中match_parent和fill_parent的意义相同,现在官方更加推荐使用match_parent。match_parent表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小。wrap_content表示让当前控件的大小能够刚好包含住里面的内容,也就是由控件内容决定当前控件的大小。所以上面的代码就表示让Button的宽度和父布局一样宽,也就是手机屏幕的宽度,让Button的高度足够包含住里面的内容就行。当然除了使用上述值,你也可以对控件的宽和高指定一个固定的大小,但是这样做有时会在不同手机屏幕的适配方面出现问题。

Button运行后细心的你可能会留意到,我们在布局文件里面设置的文字是“Button”,但最终的显示结果却是“BUTTON”。这是由于系统会对Button中的所有英文字母自动进行大写转换,如果这不是你想要的效果,可以使用如下配置来禁用这一默认特性:

<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
android:textAllCaps="false" />

两种方式实现点击事件的监听

使用匿名类的方式

接下来我们可以在MainActivity中使用匿名类的方式来为Button的点击事件注册一个监听器,如下所示:

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.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//在此处添加逻辑
}
});
}
}

这样每当点击按钮时,就会执行监听器中的onClick()方法,我们只需要在这个方法中加入待处理的逻辑就行了。

使用实现接口的方式

如果你不喜欢使用匿名类的方式来注册监听器,也可以使用实现接口的方式来进行注册,代码如下所示:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
//在此处添加逻辑
break;
default:
break;
}
}
}

这两种写法都可以实现对按钮点击事件的监听,至于使用哪一种就全凭你的喜好了。

Android控件的可见属性

        <Buttonandroid:id="@+id/button"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button"android:textAllCaps="false"android:visibility="gone"/>

所有的Android控件都具有这个属性,可以通过android:visibility进行指定,**可选值有3种:visible、invisible和gone。**visible表示控件是可见的,这个值是默认值,不指定android:visibility时,控件都是可见的。invisible表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。gone则表示控件不仅不可见,而且不再占用任何屏幕空间。我们还可以通过代码来设置控件的可见性,使用的是setVisibility()方法,可以传入View.VISIBLE、View.INVISIBLE和View.GONE这3种值。

如果对你有帮助,就一键三连呗(点赞+收藏+关注),我会持续更新更多干货~~


http://www.ppmy.cn/embedded/96642.html

相关文章

NPM包管理高级技巧:使用版本范围测试锁定

引言 在JavaScript项目开发中&#xff0c;依赖管理是保证项目稳定性和可维护性的关键环节。NPM&#xff08;Node Package Manager&#xff09;作为Node.js的包管理器&#xff0c;提供了一套灵活的版本控制机制&#xff0c;允许开发者精确控制依赖包的版本。版本范围测试锁定是…

第八章 指定自定义 HTTP 请求

文章目录 第八章 指定自定义 HTTP 请求自定义 Web 客户端的回调%OnSOAPRequest()%OnSOAPFinished() 第八章 指定自定义 HTTP 请求 默认情况下&#xff0c;Web 客户端使用 HTTP 将 SOAP 消息传输到 Web 服务并接收响应。Web 客户端会自动创建并发送 HTTP 请求&#xff0c;但可以…

车辆车载客流统计系统解决方案

车辆车载客流统计系统是一种用于实时监测和分析乘客流量的技术解决方案&#xff0c;它可以帮助公交公司、地铁运营商等交通管理部门优化运营计划、提高服务效率和乘客满意度。以下是一个详细的车载客流统计系统解决方案&#xff1a; 一、系统组成 传感器与设备 摄像头&#xf…

第100+21步 ChatGPT学习:概率校准 Isotonic Regression

基于Python 3.9版本演示 一、写在前面 最近看了一篇在Lancet子刊《eClinicalMedicine》上发表的机器学习分类的文章&#xff1a;《Development of a novel dementia risk prediction model in the general population: A large, longitudinal, population-based machine-learn…

基于UDP的网络聊天室

项目需求&#xff1a; 如果有用户登录&#xff0c;其他用户可以收到这个人的登录信息如果有人发送信息&#xff0c;其他用户可以收到这个人的群聊信息如果有人下线&#xff0c;其他用户可以收到这个人的下线信息服务器可以发送系统信息 server.c #include <myhead.h> s…

大模型微调--文章1

原文地址 链接&#xff1a;https://zhuanlan.zhihu.com/p/635152813 思考题 问题1&#xff1a;self attention对于计算的并行性体现在哪里&#xff1f;&#xff08;解决&#xff09; 答案&#xff1a; 1.矩阵运算的并行性 2.多头注意力的并行性 3.无序列依赖性&#xff08;写…

【区块链+金融服务】人民普惠链 | FISCO BCOS应用案例

释放数据要素价值&#xff0c;FISCO BCOS 2024 应用案例征集中 人民普惠链在全面建设数字社会的当下&#xff0c;解决数据确权、流通&#xff0c;以及隐私保护问题&#xff0c;拓展在供应链金融、贸易金融、 交易清算、征信、绿色金融等多种应用场景的落地&#xff0c;支持多种…

木舟0基础学习Java的第二十四天(CSS,JS,Jquery)

CSS 内部样式&#xff1a; 标签选择器&#xff1a;直接应用于HTML标签 类选择器&#xff1a;可以在页面当中多次使用 id选择器&#xff1a;同一个id选择器在同一页面中只能调用一次 选择器优先级&#xff1a;id选择器>类选择器>标签选择器 html <!DOCTYPE htm…