当前位置: 首页 > news >正文

【Android】按钮的使用

在这里插入图片描述

一:xml自定义按钮

1:java代码使用xml定义的颜色属性

(1)xml定义颜色

<?xml version="1.0" encoding="utf-8"?>
<resources><color name="black">#FF000000</color><color name="white">#FFFFFFFF</color><color name="my_blue">#ff1082ff</color>
</resources>

这里可以加id名字,16进制颜色代码表(了解即可)

(2)java给字体上颜色

        Button button = new Button(this);button.setText("三体人入侵地球");button.setTextSize(23);//第一种方式:16进制int color = ContextCompat.getColor(this,R.color.my_blue);//上下文兼容(确实很难理解,先往后面学)button.setTextColor(color);//接收是一个int值//第二种:直接使用库颜色常量button.setTextColor(Color.GRAY);//之前是用w和h接受了一下参数ViewGroup.LayoutParams params =new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);addContentView(button,params);
  • ((20250703160149-49vi8n0 “ContextCompat.getColor()”)) 这是一个静态方法,自己理解:把xml方式设置的颜色样式传递给当前的上下文

  • ((20250626104233-o337aws “R.color.my_blue”))——是一个颜色id不能作为参数直接传递给 ((20250626104233-o337aws “button.setTextColor()”))

  • Color.GRAY 是java库当中本就设定好的颜色值

  • ((20250703130259-x78axs1 “ViewGroup 是 Android 中所有布局容器的基类,它继承自 View,但专门用于管理和排列子视图(如 Button、TextView 或其他 ViewGroup)。”))

2:xml定义按钮

    <Buttonandroid:id="@+id/btn_test"android:layout_width="match_parent"android:layout_height="match_parent"android:textColor="@color/my_blue"android:textSize="30sp"android:text="我是一个按钮"/>
  • “@color/my_blue” 颜色资源的引用语法,表示使用项目中定义的名为 my_blue 的颜色值。
属性值字面翻译实际效果
match_parent匹配父布局视图的尺寸将扩展至填充父容器允许的最大空间(受父容器内边距及约束限制)。
wrap_content包裹内容视图的尺寸将根据其内部内容的实际大小自动调整,确保刚好能容纳所有内容。

3:按钮布局效果图

4:按钮尺寸设置

一般使用dp作为单位

demo:点击按钮页面跳转

(1)Java设置按钮的监听器

 		//通过xml中设置的id值找到按钮Button btnTest = findViewById(R.id.btn_test);//view这里翻译为视图更加合适//设置监听//点击按钮跳转页面的两种方式//第一种匿名内部类btnTest.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v){// 1. 创建 Intent 对象,指定跳转的起点(当前 Activity)和目标(SecondActivity)Intent intent = new Intent(MainActivity.this , SecondActivity.class);// 2. 执行跳转,启动目标 Activity;由 Activity 类提供的方法,用于启动新的 Activity。startActivity(intent);//启动}});//第二种lambda表达式btnTest.setOnClickListener(v -> startActivity(new Intent(MainActivity.this,SecondActivity.class)));
  • setOnClickListener设置一个按钮的监听器

接收的参数类型是一个接口 OnClickListener;

两种实现方式:创建一个类实现这个接口 or 匿名内部类/lambda表达式


// 1. 创建 Intent 对象,指定跳转的起点(当前 Activity)和目标(SecondActivity)
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
// 2. 执行跳转,启动目标 Activity;由 Activity 类提供的方法,用于启动新的 Activity。
startActivity(intent);
  • Intent是Android当用于组件间传递消息的载体,封装了操作请求,可用于启动 Activity、Service,发送广播等。

(2)创建跳转后的视图

需要创建一个新的空视图活动

跳转到对应的activity_second.xml中查看代码

	android:orientation="vertical"tools:context=".SecondActivity"
//效果:所有子视图将按照添加顺序从上到下依次排列,每个子视图占据一行。

6:空指针异常

在第二个activity中使用一个不属于该页面的空间就会报空指针异常,那么我们在启动第一个页面后点击按钮,不会发生页面跳转,而是会报错“application闪退”


文章转载自:
http://battu.tmizpp.cn
http://ceratodus.tmizpp.cn
http://bataan.tmizpp.cn
http://aleph.tmizpp.cn
http://apo.tmizpp.cn
http://botanist.tmizpp.cn
http://acrophony.tmizpp.cn
http://boing.tmizpp.cn
http://beldam.tmizpp.cn
http://aria.tmizpp.cn
http://betelnut.tmizpp.cn
http://acetabula.tmizpp.cn
http://botanize.tmizpp.cn
http://bluebutton.tmizpp.cn
http://acetoacetyl.tmizpp.cn
http://caproate.tmizpp.cn
http://andvar.tmizpp.cn
http://auction.tmizpp.cn
http://asme.tmizpp.cn
http://agrarian.tmizpp.cn
http://anabatic.tmizpp.cn
http://accroach.tmizpp.cn
http://bootleg.tmizpp.cn
http://calcar.tmizpp.cn
http://ademption.tmizpp.cn
http://bible.tmizpp.cn
http://bourn.tmizpp.cn
http://checkroom.tmizpp.cn
http://achromat.tmizpp.cn
http://bladdernose.tmizpp.cn
http://www.dtcms.com/a/280141.html

相关文章:

  • Java 常见工作流引擎深度对比与企业选型指南
  • 大语言模型:高考志愿填报的“新纪元智能参谋”
  • MongoDB基础增删改查命令
  • 基于LAMP环境的校园论坛项目
  • SpringBoot源码解析
  • MyBatis与Spring整合优化实战指南:从配置到性能调优
  • mysql 索引失效的场景
  • HashMap深入讲解
  • 从零开始的python学习(八)P115+P116+P117+P118+P119+P120+P121+P122
  • 部署本地大模型 Ollama + LLaMA3
  • Java基础(八):封装、继承、多态与关键字this、super详解
  • GPIO 输入/输出
  • GEO革命:当AI推荐成为新战场,传统SEO如何进化?
  • Linux基础学习---目录相关命令
  • 手机当路由,连接机器人和电脑
  • Typecho插件开发:实现文章字数统计与阅读时长计算功能
  • docker 方式gost代理搭建以及代理链实施
  • Android弹窗
  • uniapp中全局引入ronMounted, ref,watch onLoad,onShow等
  • Vim多列操作指南
  • docker-compose 配置启动2个MongoDB
  • SQL 常用版本语法概览:标准演进与关键语法分析
  • bat 批处理实现 FFmpeg 命令导出 mov 到 png 序列帧
  • 新版本PyCharm Conda环境设置 “找不到conda可执行文件”的解决
  • Git分支管理与工作流详解
  • 记录一条sql面试题2
  • MyBatis动态语法标签速查
  • Fastapi框架总览与核心架构
  • iOS App 上架工具选型与跨平台开发 iOS 上架流程优化实录
  • 深入探讨Hadoop YARN Federation:架构设计与实践应用