在Android中使用scala编程(-)

每个程序员都该学习的5种开发语言JS,python,C++,Scala都是你该学习的编程。 这能很快地完成一些有用的事情,比如,你可以用Python花5分钟写一个UDP消息的监听器,相比较,用Java可能就要花20分钟。理想情况下,一个程序员的工具集里,应该包含一个接近底层系统的语言,比C或C++;如果你已经决定开始学习Java了,那么Udemy上的 The Complete Java Master Class 教程就很棒,用它作为入门教程很好,它包含了Java的所有核心概念,很详细。你可以用Java替代C++,用Pythont替代Ruby,但是,坦率地讲,当前没有JavaScript的替代品。 阅读详情

ScalaActivity.scala

package com.example

import android.app.Activity
import android.os.Bundle
import android.view.View
import android.view.View.OnClickListener
import android.widget.EditText

import android.widget.{Toast, Button}
import android.content.Context


/**
 * Created by IntelliJ IDEA.
 * User: brant.yan
 * Date: 11-8-1
 * Time: 下午5:08
 * To change this template use File | Settings | File Templates.
 */


class ScalaActivity extends Activity with ActivityUtil {
    override def onCreate(savedInstanceState: Bundle): Unit = {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main)
    val username = findViewById(R.id.username).asInstanceOf[EditText]
    val password = findViewById(R.id.password).asInstanceOf[EditText]
     val context:Context=this
    button(R.id.submit).onClicked {
      Toast.makeText(context, "cccc", 5000).show()
    }
  }
}


ActivityUtil.scala

package com.example

import android.widget.Button
import android.app.Activity
import android.view.View.OnClickListener
import android.view.View

/**
 * Created by IntelliJ IDEA.
 * User: brant.yan
 * Date: 11-8-3
 * Time: 下午3:26
 * To change this template use File | Settings | File Templates.
 */

trait ActivityUtil extends Activity {
  def button(id: Int): Button = {
    this.findViewById(id).asInstanceOf[Button]
  }
  implicit def buttonWrapper(button: Button) = new {
    def onClicked(action: => Any) =
    {
      button.setOnClickListener(new OnClickListener() {
        def onClick(p1: View) = {
          action
        }
      })
    }
  }


}

没有new,表示定义了一个匿名的类
有了new,生成了一个对象
new {}表示生成了一个对象
而new {
    def onClicked(...) {}
}
表示生成了一个含有onClicked方法的对象
当scala发现你在代码中写了button.onClicked,但是button又没有onClicked这个方法时
它就会去寻找当前范围内可用的implicit
并且要求其参数为Button,返回的对象中,有onClicked这个方法,并且onClicked的参数,与你button.onClieck(...)的参数一致
如果没找到,就报错。找到了,就把button.onClicked转为buttonWrapper(button).onclicked(...)

以上解释感谢zhidao.it  有兴趣的童鞋可以访问其网站 zhidao.it  进行了解

retrofit converter-gson converter-scalars fastjson retrofit converter-gson converter-scalars fastjson .... jar包 找了半天,在csdn下的全是缺少这缺少那的,下载全齐了。 立即下载

相关推荐

idea-android-scala:使用 Scala 进行 Android 开发的 IntelliJ 插件

想法-android-scala 使用 Scala 进行 Android 开发的 IntelliJ 插件 特征 添加文件模板( Activity.scala 、 Fragment.scala 、 Application.scala ) 要求 智能 >= 10.1.1.0 执照 麻省理工学院许可证。 请参阅LICENSE文件。

Android_网络框架--Retrofit

Retrofit是对okHttp的再封装一、导入 ①、核心库 compile 'com.squareup.retrofit2:retrofit:2.1.0'②、其他库 compile ‘com.squareup.retrofit2:converter-gson:2.1.0’ compile ‘com.squareup.retrofit2:converter-scalars:2.1.0’导入

itszt888的博客 378

Ubuntu 22.04下Minkowski Engine编译避坑指南:解决Cuda 12.2与Pytorch cu118版本冲突

本文详细介绍了在Ubuntu 22.04系统中解决Minkowski Engine编译时Cuda 12.2与Pytorch cu118版本冲突的实用方法。通过修改版本检查逻辑、创建兼容符号链接等技巧,帮助开发者顺利完成编译,并提供了性能优化建议和替代方案,确保三维点云处理任务的高效运行。

weixin_42543309的博客 162

Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)

前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢。 如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码 目录![目录](http://upload-

Carson带你学Android 25万+

Jetson Orin NX上CAN总线调试全攻略:从硬件焊接到开机自启动(附常见问题解决方案)

本文详细介绍了在NVIDIA Jetson Orin NX开发板上进行CAN总线调试的全过程,包括硬件焊接、驱动配置、通信测试和开机自启动设置。针对常见问题如信号接反、波特率设置等提供了实用解决方案,帮助开发者快速实现稳定的CAN总线通信。

c2d3e4f的博客 1076

多路输出电源的交叉调整率:从理论到无源优化实践

本文深入探讨了多路输出电源中的交叉调整率问题,分析了其物理根源及无源优化方法。通过漏感与耦合的理论分析,结合加权反馈、电感耦合等五种无源优化技术,帮助工程师有效解决交叉调整率挑战。文章还以TDK-Lambda CUT75系列为例,展示了优化技术的实际应用与效果。

weixin_26886855的博客 280

构造Scala开发环境并创建ApiDemos示例项目

从2011年开始写Android ApiDemos 以来,Android的版本也更新了很多,目前的版本已经是4.04。ApiDemos中的例子也增加了不少,有必要更新Android ApiDemo示例解析系列文章(当然之前的文章还是有用的,依然可以作为参考)。为了不重复之前的内容,我们准备使用Scala语言开发Android应用,随着例子的逐步解析,我们会把ApiDemos的例子的代码依次修改为S

引路蜂移动软件 2万+

西门子V90 PN伺服控制核心:FB284功能块详解与实战

在工业自动化中,伺服定位控制是运动控制的基础环节,其本质是PLC通过PROFINET协议与伺服驱动器实现高速、确定性数据交互。FB284作为西门子为V90 PN定制的标准化功能块,封装了GSD映射、状态机管理与周期性PDO同步机制,将底层寄存器操作抽象为高可靠调用接口。相比MOVE指令或MC_MoveAbsolute等通用方案,FB284显著降低时序错乱风险,提升多轴同步精度与故障响应能力。它广泛应用于包装、灌装、装配等中端产线,尤其适配S7-1200/1500平台下的快速部署与现场维护。本文聚焦V90 P

weixin_42696271的博客 300

Android scale实现的几种简单的动画效果?

效果图: 1.xml布局一样 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#F

yyxhzdm的博客 716

深入解析HAL_UART_Receive_IT:如何高效配置串口中断接收

本文深入解析了STM32 HAL库中`HAL_UART_Receive_IT`函数的工作原理与高效配置方法。该函数并非直接接收数据,而是作为中断接收的启动器和配置器,通过开启相关中断,由`UART_Receive_IT`在后台完成数据搬运。文章详细对比了中断与轮询模式的区别,并提供了不定长数据接收的完整实战流程、常见问题避坑指南及高级应用技巧,帮助开发者构建稳定高效的串口通信。

weixin_29162439的博客 639

实战分享:如何用Dify和MaxKb实现文档智能切分与高效检索(附代码解析)

本文详细介绍了如何结合Dify和MaxKB构建文档智能切分与高效检索系统。针对传统全文检索的不足,提出了结构感知的文档切分方案,通过解析文档层级关系并构建标题链,实现了精准的章节级检索。文章包含完整的代码实现,涵盖文档解析、智能切分、向量化策略及双索引优化,并分享了性能调优和生产环境实践经验。

qsc90123456的博客 547

Android 手机上的 Scala 编程(转)

  http://www.neatstudio.com/category-15-1.shtml

狂徒技术分享 254

SAP VF01开票报错:出口贸易数据不完整

找了半天资料,最后发现是没有维护凭证抬头的数据;由于我不是SD模块顾问,整体流程使用的是原本环境里面的数据,用新建工厂引用,所以也不知道为啥会出发这个贸易业务。正常传到FICO模块,生成会计凭证、获利分析、利润中心及CO凭证。需要维护这三个字段后才能正常转到FI生成会计凭证。VF01开票报错:出口贸易数据不完整。

MaiKouBei的博客 1543

在Android中使用scala编程(二)

Scala中使用HTTP访问地址可以使用以下简便方式 1.声明对象   abstract class OptionalParam case class Id(id : String) extends OptionalParam case class UserId

daaoke的专栏 844

蓝牙配对鉴权过程深度剖析:Just Works/Numeric Comparison/Passkey Entry/OOB 协议流程

当你新买的智能手表与手机配对时,是否遇到过这样的情况:有时只需在手机上点击 "确认" 即可完成配对,有时却需要在手表上输入手机显示的 6 位数字,而连接车载蓝牙时可能又需要输入固定密码?这些差异背后,是蓝牙配对鉴权机制在默默工作。蓝牙配对鉴权是设备间建立安全连接的核心环节,直接关系到数据传输的保密性和设备身份的真实性。​

byte轻骑兵的技术小窝 3573

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

scala学习网址

scala学习网址: http://www.scala-lang.org/   scala开发频道: http://developer.51cto.com/art/200906/127830.htm   scala downloads: http://www.sca

haha_mingg的专栏 869

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Scala:未受重视却潜力巨大的Android编程语言

静态类型Java语言以JRuby及Groovy的后备队的身份,在移动Android应用程序开发领域整装待发。但是被称为下一代Java的JVM语言Scala却未受Android开发者重视。 AD: 【8月31日 51CTO外电头条】Scala,这款运行于Java虚拟

zzx3q的专栏 651

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Scala语言的移动应用开发

Scala是一种静态类型的编程语言,兼具面向对象和函数式编程的特点。它运行在Java虚拟机(JVM)上,并与Java高度兼容,能够利用Java生态系统中的大量库和工具。Scala的代码简洁,表达能力强,因而在处理复杂问题时能够提高开发效率。

2501_90443766的博客 483

探索Scala在Android开发中的魅力:Scala API Demos项目介绍

探索Scala在Android开发中的魅力:Scala API Demos项目介绍 在Android开发的广阔天地中,有这样一座桥,它连接着函数式编程的优雅与移动应用的便捷——那就是由47 Degrees精心打造的“Scala API Demos”项目。该项目不仅展示了Scala在Android平台上的无限可能,更是通过Macroid库的加持,让GUI操作变得前所未有的简洁高效。 项目介绍 Sca...

gitblog_00731的博客 957

使用Scala编写Android应用程序

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34018202的博客 251

响应式编程 Reactive programming-- 2. Scala

Scala 是一种多范式的编程语言,设计初衷是要整合面向对象编程和函数式编程的各种特性,可运行与多种平台之上(JVM, .Net, Android等等). 除了OOP (Object-Oriented Programming), OFP (object-functional programming)[--针对于指令(Imperative)语言], 脚本语言(scripting languag

temony的专栏 1969

Difference between Kotlin and Scala

Scala may be a exceptionally multi-paradigm language that can run anyplace from being distant...

AI天才研究院 8885

android手机 scala环境,利用Eclipse+Scala搭建android开发环境

1、安装JAVA SDK到官网(http://www.oracle.com/technetwork/java/javase/downloads/index.html)下载最新的javase sdk,推荐安装1.6版。安装完成后,在windows环境变量中添加[JAVA_HOME],并把路径指向java sdk的安装根目录。 2、安装Scala从scala官网(http://www.scala-l...

weixin_39913141的博客 301
上一篇: hudson部署IIS项目
下一篇: Android RelativeLayout 技巧
brant_yan
博客等级 码龄22年 27粉丝 81原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值