《第一行代码》中的一个小例子

第一行代码天气示例 第一行代码中最后一个示例程序,采用了百度apistore里面的天气查询接口,地区数据来源于sqllite的数据库文件。 立即下载

自己增加一些内容。不想存到代码片,在这里保存一下。

xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">                  
   
    
    <TextView 
        android:id="@+id/text_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="This is TextView"
        android:gravity="center"
        android:textSize="24sp"
        android:textColor="#00ff00"
        />
    
    <Button 
        android:id="@+id/button_show_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="显示文本"
        />
    
    <EditText 
        android:id="@+id/input_edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入文字"
        android:maxLines="3"
        />
    
    <Button 
        android:id="@+id/button_switch_img"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="切换图片"
        />
    
    <ImageView 
        android:id="@+id/image_view"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/pmi"
        />
    
    <Button 
        android:id="@+id/button_switch_progressbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="显示进度条"
        />
    
    <Button 
        android:id="@+id/button_change_progess"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="更改进度"
        />
    
    <!-- 默认是圆形进度条 -->
    <!-- 下面用style语句设置成水平进度条 -->
    <ProgressBar 
        android:id="@+id/progress_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"
        />
    
    
  
</LinearLayout>

MainActivity.java:

package com.example.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{
    
    private Button button;
    private Button changeImg;
    private Button switchVisible;
    private Button changeProgress;
    private EditText editText;
    private ImageView imageView;
    private ProgressBar progressBar;
    
    private int[] img = new int[2];
    private int imgIndex = 0;
    {
        img[0] = R.drawable.pmi;
        img[1] = R.drawable.ic_launcher;
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button_show_text);
        changeImg = (Button) findViewById(R.id.button_switch_img);
        switchVisible = (Button) findViewById(R.id.button_switch_progressbar);
        changeProgress = (Button) findViewById(R.id.button_change_progess);
        editText = (EditText) findViewById(R.id.input_edit_text);
        imageView = (ImageView) findViewById(R.id.image_view);
        progressBar = (ProgressBar) findViewById(R.id.progress_bar);
        button.setOnClickListener(this);
        changeImg.setOnClickListener(this);
        switchVisible.setOnClickListener(this);
        changeProgress.setOnClickListener(this);
        changeButtonText(progressBar, switchVisible);
    }
    
    // 根据progressBar的状态设置按钮的文字
    // OnCreate方法里只需要改文字,不用改进度条状态,故没有把改状态代码合并进来
    private void changeButtonText(ProgressBar progressBar, Button button){
        if (progressBar.getVisibility() == View.VISIBLE) {
            button.setText("隐藏进度条");
        } else {
            button.setText("显示进度条");
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button_show_text:
            String text = editText.getText().toString();
            Toast.makeText(this, text, Toast.LENGTH_LONG).show();
            break;
        case R.id.button_switch_img:
            // 轮换图片 
            imgIndex = (imgIndex + 1) % 2;
            imageView.setImageResource(img[imgIndex]);
            break;
        case R.id.button_switch_progressbar:
            if (progressBar.getVisibility() == View.VISIBLE) {
                progressBar.setVisibility(View.INVISIBLE);
            } else {
                progressBar.setVisibility(View.VISIBLE);
            }
            changeButtonText(progressBar, switchVisible);
            break;
        case R.id.button_change_progess:
            int progress = progressBar.getProgress();
            progress += 10;
            // 纯测试用,超过则清零
            if (progress > progressBar.getMax()) {
                progress -= progressBar.getMax();
            }
            progressBar.setProgress(progress);
            break;
        default:
            break;
        }
    }

}

图片不上了,主要是记录一下简单的用法。

水果图片listview 了解listview使用的图片。 立即下载

相关推荐

bcftools学习笔记(一)

欢迎关注"生信修炼手册"!本篇主要介绍index, view, query, sort, reheader这五个命令。1. indexindex命令用于对VCF文件建立索...

庐州月光的博客 6011

初始C++

目录 1.第一个C++程序 2.注释 3.变量 4.常量 5.关键字(标识符) 6 .标识符命名规则 1.第一个C++程序 #include<iostream> using namespace std; int main() { cout << "Hello world" << endl; system("pause"); return 0; } 2.注释 注释的作用:在代码中添加说明和解释,方便代码的阅读 .

内啡肽的快乐的博客 1万+

[软考]系统架构设计师 备考经验分享(一) - 备考计划篇

前言 上周末刚刚结束了软考架构师的考试,自我感觉考的还可以,大概率是过了。 两次参加软考,一次中级嵌入式,一次高级架构师,都是备考不到两个月时间,尤其是架构师这次考试内容和本职工作有不小的差别,并且需要同时备考三个科目,在高强度地备考中感觉是摸索出到了一点软考的技巧与经验。 打算趁还记得,赶紧写几篇文章做下梳理总结,算是给将来自己考系分、高项或者其他考试做个记录,也希望能够帮到正在备考的大家。 先把第一步,个人的备考计划分享给大家。 自身情况分析 首先,请大家一定先明确三个问题,这三个问题会直接影响到你的

_ 6404

一、C++入门基础

一、C++入门基础 1、 C++初始 1.1第一个C++程序 编写代码 #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; int main() { cout << "HelloWorld" << endl; system("pause"); return 0; } 1.2 注释 **作用:**在代码中加一些书名和解释,方便自己或其他人阅读代码 两种格式 单行注

SNswjn的博客 2122

踩坑记录:服务商模式下微信小程序支付,为什么必须用子商户的AppID获取openid?

本文深入解析了服务商模式下微信小程序支付必须使用子商户AppID获取openid的技术原因,详细对比了服务商模式与直连模式的关键差异,并提供了正确的配置指南和常见问题解决方案,帮助开发者避免微信支付集成中的常见陷阱。

weixin_28318011的博客 550

【Simscape】用Simscape实现三维物理仿真(三)——创建一个滑块单摆系统

1 首先创建一个Simscape Multibody 模型 (方法见 【Simscape】用Simscape实现三维物理仿真(一)——创建一个自由落体小球) 2 创建四个Solid模块 (1)摆杆 Shape : Brick Dimensions : [0.1 0.05 1] m (2)摆杆轴 Shape : Cylinder Radius : 0.02 m Le...

ReadAir的专栏 9036

C++基础总结

C++基础总结 一、基本的代码含义 1、程序的第一行#include <iostream>是预处理器指令,告诉 C++ 编译器在实际编译之前要包含iostream 文件; 2、using namespace std表示我们可以使用标准库中对象和变量的名称; 3、int main()是主函数,程序从这里开始执行; 4、/*...*/将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释; 5、return 0;终止 main() 函数,并返回值 0; 二、定义常量的两种方式 1、const

weixin_40620310的博客 1万+

数字IC后端手把手实战教程 | Innovus verify_drc VIA1 DRC Violation解析及脚本自动化修复方案

数字IC后端实战项目案例之Innovus verify_drc DRC Violation脚本自动化修复方案

weixin_37584728的博客 4049

C++--第一个代码hello world

开启C++之旅...

学无止境 3872

别再纠结选哪个向量库了!我用Spring AI + Redis Stack 7.2,5分钟搞定企业知识库RAG原型

本文介绍了如何利用Spring AI和Redis Stack 7.2快速构建企业级RAG应用,解决向量数据库选型难题。Redis Stack 7.2集成了RediSearch模块,支持向量相似性搜索,具备高性能、低成本、零学习成本等优势,特别适合中小团队快速搭建知识库系统。通过实战代码示例,展示了从环境准备到核心功能实现的完整流程。

weixin_29061041的博客 272

如何将TDengine集成到Thingsboard?

1 概述 ThingsBoard是用于数据收集、处理、可视化和设备管理的开源物联网平台。它通过行业标准的物联网协议MQTT、CoAP和HTTP实现设备连接,并支持云和本地部署。 ThingsBoard迄今没有导入专业的时序数据库应用,用户可选择的只有PostgreSQL和Cassandra。虽然针对PostgreSQL引入了TimeScale插件,但由于其不是按照宽表的方式组织数据记录,TimeScale的优势根本发挥不出来。总之,这两种数据库不具备高效的数据吞吐能力。 而且,Thingsboard在

Wearable_device的博客 4767

第一个C++代码

第一个C++代码

little_startoo的博客 6872

手把手入门YOLO到改进优化教程 | 【P6进阶篇】YOLOv8模型剪枝优化实战-LAMP剪枝

本节首先介绍LAMP剪枝相关理论。然后结合YOLO框架,手把手搭建剪枝工程,包括配置文件修改、剪枝脚本构建等内容。

嵌入式阿齐Archie 2万+

《第一行代码》ChoosePicTest例子从相册读取照片显示失败

最近在学Android,在编写《第一行代码》从相册中选取的图片例子的时候,发现相片读取失败。 解决方法如下:

qq_14823565的博客 1678

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android控件ListView

在(第一行代码 Android)书籍出现过这个例子,有需要可以去看看.

m0_63893772的博客 229

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

第一行代码新闻例子报错 Unable to start activity ComponentInfo 原因

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.timemanager.jason.fragmentbestpractice, PID: 5621 java.lang.RuntimeException: Unable to start activity ComponentInfo。。。。。。 网上找了很多...

aishen9693的博客 257

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《第一行代码》读完总结

《第一行代码》 读完总结 弹出对话框实现强制下线 设置Notification内容时出错 使用GSON方式解析JSON格式数据时书上是提示安装jar依赖包 实战练习中国天气网的接口不能使

zhuhualoyal的博客 2236

Android开发点滴(六) 《第一行代码》学习体会

最近一直在学习郭霖的《第一行代码》,不得不说,这本书确实是一本不可多得的Android开发入门书籍,书籍内容通俗易懂、由浅入深,命名规则也很规范,还顺带讲解了分布式版本控制系统Git的典型使用。 在近两个月的时间,我坚持学习和实践相结合,书中的每个例子都自己动手敲了一遍,并在手机上运行过。学完整本书以后,感觉自己在Android开发已经入门。

zfs2008zfs的博客 502

【2024最新版Kotlin教程】Kotlin第一行代码系列第四课-普通类的详解

经过前面属性和函数的学习,属性和函数一起描绘一个抽象的模型,就是类了

聪哥的专栏 340

《第一行代码》完结篇

《第一行代码》是Android入门的第一本书籍,刚开始接触是在17年10月份,那时重点关注了几个章节:Activity、ContentProvider、Service、BroadcastReceiver以及SQLite,在那个时候开始对Android开发产生了一定的兴趣,但后来发现了一个问题:看过的记不住,如果不去记录不去总结,那么可能会忘记,因此重读了这本书。从2018年10月开始,...

云瀚的自习室 1万+

我的新书,《第一行代码 Android 第3版》已出版!

《第一行代码——Android》这本书自2014年出版以来,已经过了6个年头了。期间Android系统版本经历了4.0到10.0系统的巨大升级,开发技术也发生了翻天覆地的变化。在2016年的时候,我曾对书中的内容进行了大幅度的更新,出版了这本书的第2版,也就是所谓的《第二行代码》。而如今,再隔4年之久之后,《第三行代码》终于要以全新的面貌跟大家见面了。

郭霖的专栏 9万+

《第一行代码》中遇到的问题

前言: 最近刚刚学完郭霖的第一行代码(第二版)这本书,是我选择入门安卓的一本书,看到很多人都推荐这本书,所以就去图书馆借来趁寒假学习下。但是由于技术是不断更新的,而这本书是16年的,虽然也算是市面上比较新的安卓书籍,但是由于技术的更新速度实在是太快,所以楼主学习的时候2020年,已经有点过时了,导致有一些方法和库更新之后有问题,在此记录下来,也希望帮到以后拿这本书来学习的朋友。 一、开发环境 楼...

WS的小屋 5601

Android Studio 单刷《第一行代码》系列 07 —— Broadcast 广播

前情提要(Previously) 本系列将使用 Android Studio 将《第一行代码》(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android Studio 作为开发 IDE 的同学开路。 PS:其实我就是现学现卖,希望我能坚持刷完。 系列目录在此: Android Studio 单刷《第一行代码》系列目录 系统广播 Android 内置了很...

weixin_30246221的博客 148

看一看Facebook工程师是怎么评价《第一行代码》的

大家好,我是一名Facebook的工程师,同时也是《第一行代码——Android》的忠实读者。 虽然我最近几年是在国外读书和工作的,但是和很多人一样,我也非常喜欢郭霖的博客以及他写的《第一行代码——Android》。 事实上,这本书在我面试 Facebook 的时候给我提供了很大的帮助。为此,我专门为这本书写了这样一篇书评,同时也跟大家分享一下我自己的经历。 我是谁? 先来简单介绍一下我自己吧。 ...

郭霖的专栏 1万+

AS-实践《第一行代码》中的出现的问题

目录前言依赖改动Recyclerview通知Notification内容提供器Provider 前言 本人是按照《第一行代码》来学习Android开发的。但是此书是2016年出版,至今到2019年中谷歌公司也在不断对AS进行更新。如方法的废弃或改进、依赖的更新等。 于是本人将学习中遇到的问题和解决方法统一记录在这。 依赖改动 从3.4版本的gradle开始,compile已经被api与implem...

做想做的事,希望对你有用 8980

看完《第一行代码-第三版》- 郭霖 这本书后的总结

看完《第一行代码-第三版》- 郭霖 这本书后的总结 - Andoird 开篇     2020-04-01 我购买了《第一行代码》第三版 - 签名版(以下简称第三行代码),我等了它太久了,因为疫情的原因这本书推迟了一个多月的时间。在等出书这段时间里我焦灼万分,焦灼我的技术止步不前,目前我做的项目架构很欠缺,我非常担心内存泄漏和一些性能问题,当前我能做到只有A...

So_carry的博客 4256
上一篇: Android 测试生命周期的APP
下一篇: Android UI 之 ProgressBar、ProgressDialog、AlertDialog
KingLearnJava
博客等级 码龄12年 93粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值