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

学习安卓开发遇到的问题

问题1:学习禁用与恢复按钮中:

java代码报错:报错代码是

R.id.btn_enable;case R.id.btn_disable;case R.id.btn_test:

代码如下:(实现功能在代码后面)

package com.example.apptest;import static java.time.LocalTime.now;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private TextView tv_result;private Button btn_test;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv_result = findViewById(R.id.tv_result);btn_test = findViewById(R.id.btn_test);Button btn_enable = findViewById(R.id.btn_enable);Button btn_disable = findViewById(R.id.btn_disable);btn_enable.setOnClickListener(this);btn_disable.setOnClickListener(this);btn_test.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_enable:btn_test.setTextColor(Color.BLACK);btn_test.setEnabled(true);break;case R.id.btn_disable:btn_test.setTextColor(Color.GRAY);btn_test.setEnabled(false);break;case R.id.btn_test:tv_result.setText(now().toString() + "  测试按钮被点击了");break;}}}
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_enable"android:layout_width="0dp"android:layout_height="wrap_content"android:text="启动测试按钮"android:textColor="#000000"android:layout_weight="1"android:textSize="15sp"/><Buttonandroid:id="@+id/btn_disable"android:layout_width="0dp"android:layout_height="wrap_content"android:text="禁用测试按钮"android:textColor="#000000"android:layout_weight="1"android:textSize="15sp"/></LinearLayout><Buttonandroid:id="@+id/btn_test"android:layout_width="match_parent"android:layout_height="wrap_content"android:enabled="false"android:text="测试按钮"android:textColor="#888888"android:textSize="15sp"/><TextViewandroid:id="@+id/tv_result"android:layout_width="match_parent"android:layout_height="wrap_content"android:paddingLeft="5dp"android:text="这里查看测试按钮的点击结果"android:textColor="#000000"android:textSize="15sp"/></LinearLayout>

 某些情况希望暂时禁止点击操作,譬如用户在注册的时候,有 的网站要求用户必须同意指定条款,而且至少浏览10秒之后才能点击注册按钮。那么在10秒之前,注册 按钮应当置灰且不能点击,等过了10秒之后,注册按钮才恢复正常。在这样的业务场景中,按钮先后拥 有两种状态,即不可用状态与可用状态,它们在外观和功能上的区别如下:

(1)不可用按钮:按钮不允许点击,即使点击也没反应,同时按钮文字为灰色。

(2)可用按钮:按钮允许点击,点击按钮会触发点击事件,同时按钮文字为正常的黑色。

问题2:4.2 在活动之间传递消息中:

向下一个Activity发送数据,并且下一个向上一个Activity返回响应数据学习中遇到问题:

上一个Activity没有接收到下一个的响应数据:

点击发送以上文字按钮后: 

点击返回应答消息按钮后: 

收到的返回信息为空! 

代码如下:

MainActivity.java

package com.example.apptest;import static java.time.LocalTime.now;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn_enable = findViewById(R.id.btn_enable);btn_enable.setOnClickListener(this);}@Overridepublic void onClick(View v) {if (v.getId() == R.id.btn_enable){TextView tv_send = findViewById(R.id.tv_send);//创建一个意图对象,准备跳到指定的活动页面Intent intent = new Intent(this,Activity2.class);//创建一个Bundle对象(创建一个新包裹),准备存储数据Bundle bundle = new Bundle();// 往包裹存入名为request_time的字符串bundle.putString("request_time",now().toString());// 往包裹存入名为request_content的字符串bundle.putString("request_content",tv_send.getText().toString());// 把快递包裹塞给意图intent.putExtras(bundle);//期望接收下个页面的返回数据。第二个参数为本次请求代码startActivityForResult(intent,0);}}// 从下一个页面携带参数返回当前页面时触发。其中requestCode为请求代码,
// resultCode为结果代码,intent为下一个页面返回的意图对象@Overrideprotected void onActivityResult(int requestCode,int resultCode,Intent intent){// 接收返回数据super.onActivityResult(requestCode,resultCode,intent);TextView tv_response = findViewById(R.id.tv_response);// 意图非空,且请求代码为之前传的0,结果代码也为成功if (intent!=null && requestCode == 0 && resultCode == MainActivity.RESULT_OK){// 从返回的意图中获取快递包裹Bundle bundle = intent.getExtras();// 从包裹中取出名叫response_time的字符串String response_time = bundle.getString("responde_time");// 从包裹中取出名叫response_content的字符串String response_content = bundle.getString("responde_content");String desc = String.format("收到返回消息:\n应答时间为:%s\n应答内容为:%s",response_time,response_content);tv_response.setText(desc); // 把返回消息的详情显示在文本视图上}}
}

Activity2.java

package com.example.apptest;import static java.time.LocalTime.now;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;public class Activity2 extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_2);TextView tv_receive = findViewById(R.id.tv_receive);Button btn_finish = findViewById(R.id.btn_finish);// 从上一个页面传来的意图中获取快递包裹Bundle bundle = getIntent().getExtras();// 从包裹中取出名为request_time的字符串String request_time = bundle.getString("request_time");// 从包裹中取出名为request_content的字符串String request_content = bundle.getString("request_content");String desc = String.format("收到请求消息:\n请求时间为%s\n请求内容为%s",request_time,request_content);tv_receive.setText(desc);/*
下一个页面在返回上一个页面时,打包应答数据并调用setResult方法返回数据包裹。setResult
方法的第一个参数表示应答代码(成功还是失败),第二个参数为携带包裹的意图对象。
*/btn_finish.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String response = "我吃过了,还是你来我家吃";Intent intent = new Intent();Bundle bundle2 = new Bundle();// 往包裹存入名为字符串bundle2.putString("response_time", now().toString());bundle2.putString("response_content", response);// 将包裹存入意图中intent.putExtras(bundle2);// 携带意图返回上一个页面。RESULT_OK表示处理成功setResult(Activity.RESULT_OK,intent);finish();// 结束当前的活动页面}});}
}

 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/tv_send"android:layout_width="match_parent"android:layout_height="wrap_content"android:paddingLeft="5dp"android:text="哈哈,今天天气真好!"android:textColor="#000000"android:textSize="15sp"/><Buttonandroid:id="@+id/btn_enable"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="发送以上文字"android:textColor="#000000"android:textSize="15sp"/><TextViewandroid:id="@+id/tv_response"android:layout_width="match_parent"android:layout_height="wrap_content"android:paddingLeft="5dp"android:textColor="#000000"android:textSize="15sp"/></LinearLayout>

 activity_2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="300dp"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/tv_receive"android:text="我接受到的消息"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_finish"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="返回应答消息"/></LinearLayout>

相关文章:

学习安卓开发遇到的问题

问题1&#xff1a;学习禁用与恢复按钮中&#xff1a; java代码报错&#xff1a;报错代码是 R.id.btn_enable;case R.id.btn_disable;case R.id.btn_test: 代码如下&#xff1a;&#xff08;实现功能在代码后面&#xff09; package com.example.apptest;import static java.…...

数学建模--禁忌搜索

目录 算法基本原理 关键要素 应用实例 实现细节 python代码示例 总结 禁忌搜索算法在解决哪些具体类型的组合优化问题中最有效&#xff1f; 禁忌搜索算法的邻域结构设计有哪些最佳实践或案例研究&#xff1f; 如何动态更新禁忌表以提高禁忌搜索算法的效率和性能&#…...

LeetCode 第136场双周赛个人题解

Q1. 求出胜利玩家的数目 原题链接 Q1. 求出胜利玩家的数目 思路分析 直接模拟 时间复杂度&#xff1a;O(N) AC代码 class Solution { public:int winningPlayerCount(int n, vector<vector<int>>& pick) {unordered_map<int, unordered_map<int, …...

The operation was rejected by your operating system. code CERT_HAS_EXPIRED报错解决

各种报错&#xff0c;试了清缓存&#xff0c;使用管理员权限打开命令行工具&#xff0c;更新npm&#xff0c;都不好使 最终解决&#xff1a;删除 c:/user/admin/ .npmrc...

[Git][基本操作]详细讲解

目录 1.创建本地仓库2.配置 Git3.添加文件1.添加文件2.提交文件3.其他 && 说明 4.删除文件5.跟踪修改文件6.版本回退7.撤销修改0.前言1.未add2.已add&#xff0c;未commit3.已add&#xff0c;已commit 1.创建本地仓库 创建⼀个Git本地仓库&#xff1a;git init运行该命…...

springMVC中从Excel文件中导入导出数据

目录 1. 数据库展示2. 导入依赖3. 写方法3.1 导入数据3.2 导出数据 4. 效果5. 不足6. 参考链接 1. 数据库展示 2. 导入依赖 pom.xml <!--文件上传处理--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId>&…...

C++的STL简介(三)

目录 1.vector的模拟实现 1.1begin&#xff08;&#xff09; 1.2end&#xff08;&#xff09; 1.3打印信息 1.4 reserve&#xff08;&#xff09; 1.5 size&#xff08;&#xff09; 1.6 capacity&#xff08;&#xff09; 1.7 push_back() 1.8[ ] 1.9 pop_back() 1.10 insert&…...

BERT模型

BERT模型是由谷歌团队于2019年提出的 Encoder-only 的 语言模型&#xff0c;发表于NLP顶会ACL上。原文题目为&#xff1a;《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》链接 在前大模型时代&#xff0c;BERT模型可以算是一个参数量比…...

举例说明计算机视觉(CV)技术的优势和挑战

计算机视觉&#xff08;CV&#xff09;技术是通过计算机模拟和处理图像与视频数据来模拟人类视觉的能力。它可以带来许多优势&#xff0c;也面临一些挑战。 优势&#xff1a; 自动化&#xff1a;CV技术可以自动处理大量的图像和视频数据&#xff0c;从而提高工作效率和准确性。…...

Animate软件基础:关于补间动画中的图层

Animate 文档中的每一个场景都可以包含任意数量的时间轴图层。使用图层和图层文件夹可组织动画序列的内容和分隔动画对象。在图层和文件夹中组织它们可防止它们在重叠时相互擦除、连接或分段。若要创建一次包含多个元件或文本字段的补间移动的动画&#xff0c;请将每个对象放置…...

mac|安装hashcat(压缩包密码p解)

一、安装Macports&#xff08;如果有brew就不用这一步&#xff09; 根据官网文档&#xff1a;The MacPorts Project -- Download & Installation&#xff0c;安装步骤如下 1、下载MacPorts&#xff0c;这里我用的是tar.gz &#xff0c;可以通过keka&#xff08;keka安装在…...

【保姆级系列:锐捷模拟器的下载安装使用全套教程】

保姆级系列&#xff1a;锐捷模拟器的下载安装使用全套教程 1.介绍2.下载3.安装4.实践教程5.验证 1.介绍 锐捷目前可以通过EVE-NG来模拟自己家的路由器&#xff0c;交换机&#xff0c;防火墙。实现方式是把自己家的镜像导入到EVE-ng里面来运行。下面主要就是介绍如何下载镜像和…...

virtualbox7安装centos7.9配置静态ip

1.背景 我大概在一年之前安装virtualbox7centos7.9的环境&#xff0c;但看视频说用vagrant启动的窗口可以不用第三方工具(比如xshell、secure等)连接centos7.9&#xff0c;于是尝鲜试了下还可以&#xff0c;导致系统文件格式是vmdk了&#xff08;网上有vmdk转vdi的方法&#xf…...

结构型设计模式:桥接/组合/装饰/外观/享元

结构型设计模式&#xff1a;适配器/代理 (qq.com)...

vLLM初识(一)

vLLM初识&#xff08;一&#xff09; 前言 在LLM推理优化——KV Cache篇&#xff08;百倍提速&#xff09;中&#xff0c;我们已经介绍了KV Cache技术的原理&#xff0c;从中我们可以知道&#xff0c;KV Cache本质是空间换时间的技术&#xff0c;对于大型模型和长序列&#xf…...

【Apache Doris】周FAQ集锦:第 18 期

【Apache Doris】周FAQ集锦&#xff1a;第 18 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户…...

docker部署可执行的jar

1.将项目打包&#xff0c;上传到服务器的指定目录 2.在该目录下创建Dockerfile文件 3.Dockerfile写入如下指令 # 基于哪个镜像 FROM java:8 # 拷贝文件到容器&#xff0c;也可以直接写成ADD xxxxx.jar /app.jar ADD springboot-file-0.0.1.jar file.jar RUN bash -c touch /…...

OpenCV||超详细的图像处理模块

一、颜色变换cvtColor dst cv2.cvtColor(src, code[, dstCn[, dst]]) src: 输入图像&#xff0c;即要进行颜色空间转换的原始图像。code: 转换代码&#xff0c;指定要执行的颜色空间转换类型。这是一个必需的参数&#xff0c;决定了源颜色空间到目标颜色空间的转换方式。dst…...

java面向对象期末总结

子类父类方法执行顺序&#xff1f;多态中和子类打印不一样&#xff1b; 子类在实现父类方法的时候没有用super关键字进行调用也会先执行父类的构造方法吗&#xff1f; 是的&#xff0c;当子类实例化时&#xff0c;先执行父类的构造方法&#xff0c;再执行子类的构造方法。即使在…...

文件搜索 36

删除文件 文件搜索 package File;import java.io.File;public class file3 {public static void main(String[] args) {search(new File("D :/"), "qq");}/*** 去目录搜索文件* param dir 目录* param filename 要搜索的文件名称*/public static void sear…...

抖音视频批量下载效率革命:解放双手的douyin-downloader全攻略

抖音视频批量下载效率革命&#xff1a;解放双手的douyin-downloader全攻略 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 作为内容创作者&#xff0c;你是否曾为收集行业素材而重复点击下载按钮&#xff1f…...

Trae平台实战:我如何教会一个AI智能体应对动态网页和反爬虫?

Trae平台实战&#xff1a;动态网页抓取与反爬策略的智能应对之道 在数据驱动的商业环境中&#xff0c;网页抓取技术已成为企业获取竞争优势的关键能力。然而&#xff0c;随着网站防护技术的升级&#xff0c;传统爬虫在面对动态加载内容和复杂反爬机制时往往力不从心。本文将分享…...

LongCat-Image-Editn部署案例:中小企业低成本AI修图方案,替代Photoshop高频操作

LongCat-Image-Editn部署案例&#xff1a;中小企业低成本AI修图方案&#xff0c;替代Photoshop高频操作 重要提示&#xff1a;本文所有操作均在合规合法的网络环境下进行&#xff0c;所有技术方案均符合相关法律法规要求。 1. 引言&#xff1a;中小企业修图痛点与解决方案 对于…...

Qwen3-ForcedAligner-0.6B生产环境:支持日均1000+分钟音频批处理任务

Qwen3-ForcedAligner-0.6B生产环境&#xff1a;支持日均1000分钟音频批处理任务 1. 项目概述 Qwen3-ForcedAligner-0.6B是一款基于阿里巴巴先进语音识别技术开发的本地化智能语音转录工具。该工具采用双模型架构设计&#xff0c;集成了Qwen3-ASR-1.7B语音识别模型和ForcedAli…...

飞书文档到Markdown的突破性转换技术:feishu2md架构深度解析

飞书文档到Markdown的突破性转换技术&#xff1a;feishu2md架构深度解析 【免费下载链接】feishu2md 一键命令下载飞书文档为 Markdown 项目地址: https://gitcode.com/gh_mirrors/fe/feishu2md 在当今企业协作环境中&#xff0c;飞书文档已成为团队知识沉淀的核心载体&…...

Cherry Studio终极模型集成指南:支持DeepSeek-R1等主流LLM的桌面AI神器

Cherry Studio终极模型集成指南&#xff1a;支持DeepSeek-R1等主流LLM的桌面AI神器 【免费下载链接】cherry-studio &#x1f352; Cherry Studio is a desktop client that supports for multiple LLM providers. Support deepseek-r1 项目地址: https://gitcode.com/GitHub…...

智慧交通落地难题:为什么80%的智能信号灯项目效果不达预期?

智慧交通落地困境&#xff1a;从技术神话到现实瓶颈的深度解构 清晨7点30分&#xff0c;北京东三环的某个十字路口&#xff0c;20名交警正在手动调节信号灯——这个造价480万元的智能信号系统在早高峰时段被完全弃用。类似的场景正在全国至少17个城市重复上演&#xff0c;某头部…...

Fish-Speech-1.5开源模型的企业级部署架构设计

Fish-Speech-1.5开源模型的企业级部署架构设计 如果你正在考虑将Fish-Speech-1.5这个强大的语音合成模型引入到自己的业务中&#xff0c;比如做个智能客服、有声书平台&#xff0c;或者给产品加个语音播报功能&#xff0c;那你肯定不能只满足于在本地电脑上跑个Demo。一旦涉及…...

5倍效率提升:GIMP批量图像处理插件BIMP全攻略

5倍效率提升&#xff1a;GIMP批量图像处理插件BIMP全攻略 【免费下载链接】gimp-plugin-bimp 项目地址: https://gitcode.com/gh_mirrors/gi/gimp-plugin-bimp 在数字内容创作领域&#xff0c;批量图像处理是提升效率的关键环节。GIMP作为免费开源的图像编辑软件&#…...

Image-to-Video镜像使用技巧:提示词怎么写?参数怎么调?

Image-to-Video镜像使用技巧&#xff1a;提示词怎么写&#xff1f;参数怎么调&#xff1f; 1. 快速上手Image-to-Video镜像 Image-to-Video图像转视频生成器是一款基于I2VGen-XL模型的实用工具&#xff0c;能够将静态图片转化为动态视频。这个由科哥二次开发的镜像已经预装了…...