在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下的全是缺少这缺少那的,下载全齐了。 立即下载

相关推荐

playservices-scala:Android库,可在Scala中方便地使用Google Play服务

Scala的播放服务 特性和对象的集合,这些特性和对象使在Scala中为Android编程时更方便使用。 问题/贡献 请注意,到目前为止,该库尚未经过大量测试。 请使用GitHub 报告任何问题或改进。 这也意味着该库可能仍会进行重大更改。 欢迎和鼓励捐款! 用法 该库主要包含两个核心功能,即PlayServices特性和API包装器。 两者都可以单独使用,但是当结合在一起时,它们可以显示出真正的威力。 因此,以下示例将同时使用始终使用这两个功能。 请记住,如果您确实愿意,可以将它们分开使用。 PlayServices特性使用您指定的API和范围在您的Activity中设置一个隐式GoogleApiClient ,该API和GoogleApiClient在onStart()上启动,在onStop()停止。 您可以添加原始Google Play Api[Options]实例,并调用

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

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

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

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

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

Carson带你学Android 25万+

Bochs源码分析 - 4: 使用ida来调试bochs

前言 bochs内部提供了一个调试器,但是这个命令行调试器相当难用,想找一个gui的debugger。第一次是在百度百科的bochs词条中介绍的peter-bochs-debugger调试器(java编写),但是后来发现ida也有一个bochs调试器,因为对ida比较熟悉,就选用此作为bochs调试器。 在配置过程中参考博客 https://blog.youkuaiyun.com/cssxn/article/details/90738498 中的配置,但是这是直接发布版本,拿源码编译...

WriteAnything_的博客 2756

TwinCAT3 实时核异步通信:基于ADS的C++ Server/Client数据交换实战解析

本文深入解析了在TwinCAT3实时核中,如何利用ADS协议实现C++ Server与Client之间的异步数据交换。文章从核心概念入手,详细阐述了实时核、ADS通信及异步机制,并通过实战步骤指导环境搭建、路由配置、Server端服务创建与Client端请求发起,重点剖析了Req/Ind/Res/Con异步回调模型,旨在帮助开发者构建高效、非阻塞的实时工业控制应用。

purple的博客 469

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

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

引路蜂移动软件 2万+

华为云Stack 8.X 流量模型分析(一)

​ 当内部需要提供对外服务时(如对外发布Web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布。​ 内部地址要访问公网上的服务时(如Web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。

Ciyaso的博客 3244

Retrofit 找不到ScalarsConverterFactory

刚开始学Retrofit的时候,就不去用复杂的Converter了。想先用下基本款String的Converter:ScalarsConverterFactory。于是敲下一下代码: Retrofit retrofit = new Retrofit.Builder() .baseUrl(MyConstant.baseUrl) .addConverterFactory(Sca...

You can't stand me now 6059

逆向拼多多长连接:Frida+Python协议还原实战

长连接是现代移动App实现低延迟、高并发通信的核心技术,其原理在于复用TCP通道避免HTTP频繁建连开销,并通过自定义二进制协议提升传输效率与安全性。在电商场景中,长连接不仅承载业务数据,更集成了动态密钥协商、设备指纹绑定、应用层加密等多重防护机制,显著提升数据窃取与自动化采集难度。本文聚焦真实商业级长连接逆向工程,以拼多多(PDD)v12.86.0为案例,详解如何利用Frida在JNI层精准Hook encrypt/decrypt函数捕获明文,结合Python构建协议解析器与会话管理器,实现对商品详情(I

weixin_30843121的博客 1118

14自由度汽车动力学模型

多体系统分解簧上质量刚体:包含车身主体,具有6个自由度(x/y/z平移 + 俯仰/侧倾/横摆旋转)四个簧下质量刚体:每个车轮独立建模,含垂直跳动(z向)和旋转(绕z轴)自由度总自由度:6(车身) + 4×2(车轮) = 14自由度。

chao189844的博客 1198

Android 手机上的 Scala 编程(转)

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

狂徒技术分享 254

Transformer实战(33)——高效自注意力机制

在本节中,我们学习了如何在硬件资源受限的情况下减轻运行大模型的负担,介绍了高效的稀疏 Transformer 模型,通过近似技术(如 Linformer、BigBird 和 Performer) 用稀疏矩阵替代全自注意力矩阵。并观察它们在各种基准测试中的表现,例如计算复杂度和内存复杂度。结果表明,这些方法可以在不牺牲性能的情况下将平方级复杂度降低到线性复杂度。

盼小辉丶的博客 3062

在Android中使用scala编程(二)

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

daaoke的专栏 844

2026国内Claude Code保姆级教程:安装、避坑、防串台全优化

安装 Claude Code CLI + 切换 npm 国内镜像优先配置固定关闭:自动联网、自动项目扫描VSCode 内置终端直接用,不装多余插件会话隔离+指令约束,彻底解决 Rust、小程序 跨语言串台。

lpfasd123的博客 2557

烧录代码显示:no st-link 和Targrt DLL has been cancelled,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1579

scala学习网址

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

haha_mingg的专栏 869

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

zzx3q的专栏 651

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

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Scala语言的移动应用开发

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

2501_90443766的博客 483

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

探索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
上一篇: 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、付费专栏及课程。

余额充值