Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android 入门程序 Kotlin版(1)

Android 入门程序 Kotlin版(1)

作者头像
用户6021899
发布于 2021-01-12 06:44:57
发布于 2021-01-12 06:44:57
39000
代码可运行
举报
运行总次数:0
代码可运行

4个组件 TextView,Button,TextEdit,ImageView依次纵向线性布局。

点击Button可以在手机底部弹出消息显示TextEidt的内容,并切换图片。

AndroidManifext.xml

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myui">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyUI">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

UI界面XML:

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id ="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

    <Button
        android:id ="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text ="@string/click_me" />

    <EditText
        android:id ="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint ="@string/input_something"
        android:inputType="text"
        android:autofillHints="text" />

    <ImageView
        android:id ="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src ="@drawable/cats"/>

</LinearLayout>

MainActivity的kotlin源码:

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.myui

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        imageView.setTag(R.drawable.cats)

        button1.setOnClickListener{
            val inputText = editText1.text.toString()
            Toast.makeText(this,inputText, Toast.LENGTH_SHORT).show()
            when(imageView.getTag()){
                R.drawable.cats->{
                    imageView.setImageResource(R.drawable.xq)
                    imageView.setTag(R.drawable.xq)
                }
                R.drawable.xq->{
                    imageView.setImageResource(R.drawable.cats)
                    imageView.setTag(R.drawable.cats)
                }
            }

        }
    }
}

build.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
}
android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"
    defaultConfig {
        applicationId "com.example.myui"
        minSdkVersion 29
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
代码语言:javascript
代码运行次数:0
运行
复制

注:Android Studio 版本是4.1.1。ImageView的图片须保存在工作目录下的drawable文件夹。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C/C++与Python双剑合璧
&nbsp;&nbsp;&nbsp;&nbsp;python作为一门动态语言,语法的灵活性和强大的模块支持使得开发效率大大提升,传统C/C++程序员可以借助python来实现业务逻辑来减少开发成本。而另一方面,python灵活的语言特性带来的代价是性能的降低,在一些密集计算型任务面前显得力不从心,但这个问题可以由C/C++来解决,将对性能要求较高的部分用C语言来实现即可, 而且对于一些加密解密算法,还可以保持源码的私密性。而本文正是针对两者的双剑合璧,对C/C++与python相互调用的讲解。
菜菜cc
2022/11/15
9600
C/C++与Python双剑合璧
C/C++生态工具链——gcc/g++编译器使用指南
GCC的全称是GNU Compiler Collection,是GNU工具链中的一种。GCC不仅支持C/C++语言,还支持Fortran/Ada/Java等语言的编译。
Coder-ZZ
2023/02/23
2.8K0
C/C++生态工具链——gcc/g++编译器使用指南
简单的Python调用C++程序
最近写BUG的时候遇到python计算很慢的情况,于是调研了一波在python中嵌入C++程序的方法,记录一下,便于查询。
润森
2022/09/22
8150
C和C++编译工具的基本使用方法
GCC:GNU Compiler Collection,中文叫 “GNU编译器套件”,它可以编译C、C++、JAVA、Go、Object-C等语言。
极客开发者
2022/01/18
1.4K0
简单的Python调用C++程序
最近写BUG的时候遇到python计算很慢的情况,于是调研了一波在python中嵌入C++程序的方法,记录一下,便于查询。
小白学视觉
2025/02/25
2690
简单的Python调用C++程序
简单上手nodejs调用c++(c++和js的混合编程)
因为项目的原因,最近经常使用node.js搭RESTful接口。 性能还是很不错啦,感觉比Spring Boot之类的要快。而且在不错的性能之外,只要程序结构组织好,别让太多的回调把程序结构搞乱,整体开发效率比Java快的就太多了。
俺踏月色而来
2018/08/10
5.5K0
简单上手nodejs调用c++(c++和js的混合编程)
Matplotlib for C++不完全手册
matplotlib-cpp是Matplotlib(MPL)为C++提供的一个用于python的matplotlib绘图库的C++包装器。它的构建类似于Matlab和matplotlib使用的绘图API。
艰默
2024/01/11
1.2K0
Matplotlib for C++不完全手册
C++服务编译耗时优化原理及实践
大型C++工程项目,都会面临编译耗时较长的问题。不管是开发调试迭代、准入测试,亦或是持续集成阶段,编译行为无处不在,降低编译时间对提高研发效率来说具有非常重要意义。
美团技术团队
2020/12/14
2.1K0
C++服务编译耗时优化原理及实践
c比python快多少倍_python和c++哪个简单
这是因为不同编程语言有各自的适用场景和语法特性,联合编程可使得各种语言发挥自己的特长。本文主要比较Python和C++,先列举各自特点如下:
全栈程序员站长
2022/11/10
2.1K0
c比python快多少倍_python和c++哪个简单
C语言中.h和.c文件解析
简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:
用户6754675
2020/07/14
3.2K0
再探C/C++扩展Python
    上篇博文是初用c/c++扩展Python,只是简单的举个例子,有兴趣的可以去上篇博文里看看那个例子的代码,代码如下:
py3study
2020/01/07
7950
【C++ 语言】 C 与 C++ 兼容 ( extern "C" )
5. 选择启动项 : 点击绿色的小三角按钮 “选择启动项” , 选择上面生成的解决方案 “001_CMake_1.exe” 选项 , 如下图示 ;
韩曙亮
2023/03/27
3K0
【C++ 语言】 C 与 C++ 兼容  ( extern "C" )
在C++中调用Python
虽然现在Python编程语言十分的火爆,但是实际上非要用一门语言去完成所有的任务,并不是说不可以,而是不合适。在一些特定的、对于性能要求比较高的场景,还是需要用到传统的C++来进行编程的。但是C++的一个缺点是比较难找到很好的轮子,这也是很多人专用Python的一个重要原因。这篇文章我们要介绍的是一个比较特殊的场景——用C++的代码去调用Python函数中实现的一些功能。这样的话,如果代码的主体还是用C++完成的,而部分功能为了简便,引入一些Python中已经封装好的函数,这样就可以很好的结合两种语言各自的特点。而另一种工作方式:通过Python来调用一些C++或者Fortran中实现的高性能函数,可以参考这一篇博客。这两种不同的使用方法各有优劣,但是如果以Python为主导,就很难避开GIL的问题,这里我们就不过多的展开。
DechinPhy
2021/05/27
4.9K0
h文件和c文件的区别include本身只是一个简单的文件包含预处理命令,即为把include的后面文件放到这条命令这里,除此之外,没有其它的用处(至少我也样认为).
其实在H文件里写函数也无所谓,只是不符合习惯而已。只要按照以上的格式写,一个H文件添加多少次都无所谓,
仇诺伊
2018/11/22
1.7K0
【C++】开源:matplotlib-cpp静态图表库配置与使用
项目Github地址:https://github.com/lava/matplotlib-cpp
DevFrank
2024/07/24
8960
如何阅读Redis 源码
Redis 实际上是简称,全称为 Remote Dictionary Server (远程字典服务器),由 Salvatore Sanfilippo 写的高性能 key-value 存储系统,其完全开源免费,遵守 BSD 协议。Redis 与其他 key-value 缓存产品(如 memcache)有以下几个特点。
秦怀杂货店
2024/12/07
1310
如何阅读Redis 源码
面向 C++ 的现代 CMake 教程(二)
现在我们已经收集了足够的信息,可以开始讨论 CMake 的核心功能:构建项目。在 CMake 中,一个项目包含管理将我们的解决方案带入生活的所有源文件和配置。配置从执行所有检查开始:目标平台是否受支持,是否拥有所有必要的依赖项和工具,以及提供的编译器是否工作并支持所需功能。
ApacheCN_飞龙
2024/05/26
9730
面向 C++ 的现代 CMake 教程(二)
如何使用C++通过thrift访问HBase进行操作
上周六,接了一个紧急任务,说实现使用 C++ 访问 HBase 进行操作。说是用 thrift 来实现。对于 C++ 来说,我真的是门外汉,但需求如此,皱着眉头也要把它实现。好歹在同事的帮助下,也是实现了 demo 示例,现在就把这两天的成果分享给大家。
create17
2019/05/14
3.4K0
如何使用C++通过thrift访问HBase进行操作
【C++】开源:oatpp-web框架配置与使用
用C++开发web也不是不行,这不,oatpp就是一个轻量、跨平台、高性能的web框架。
DevFrank
2024/07/24
1.3K0
【C++】开源:oatpp-web框架配置与使用
mac 使用Clang(Next-gen compiler infrastructure)配置VS Code C/C++环境
如果想使用 gcc 指令来编译执行 C++ 程序,需要在使用 gcc 指令时,手动为其添加
早起的鸟儿有虫吃
2025/01/12
5901
mac 使用Clang(Next-gen compiler infrastructure)配置VS Code C/C++环境
推荐阅读
相关推荐
C/C++与Python双剑合璧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验