Articles of scala

如何从RecyclerView.Adapter访问LayoutManager以获取scrollToPosition?

我通过为页眉和页脚添加单独的布局来自定义RecyclerView 。 我创建了常量来确定适配器类中的页眉,页脚和列表项的属性。 我还创建了一个ViewHolder模式,并根据视图types指定要显示的布局。 我通过覆盖getItemViewType方法将头部固定在第0个位置和页脚最后位置的页脚。 我想使页脚元素可单击,所以我分配一个setOnClickListener(new View.OnClickListener())并覆盖onClick(view: View) 我的目标是单击页脚和scrollToPosition 0或1(0 =标题,1 =第一个项目元素)。 那是MyAdapter的定义: class MyAdapter(context: Context, data: Array[String]) extends RecyclerView.Adapter[RecyclerView.ViewHolder] … override def onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int): Unit = holder match { … case holder:FooterViewHolder => holder.backToTop.setOnClickListener(new View.OnClickListener() { override def onClick (view: View) { backToTop(???) Toast.makeText (context, “Clicked Footer”, Toast.LENGTH_SHORT).show() } }) … } […]

从shell和sbt在android sdk中运行aapt的程序

我有一个奇怪的问题,我不能从sbt命令和shell运行aapt。 我运行这个命令: sbt update package-debug 一切都消失,直到我收到此错误: java.io.IOException: Cannot run program “/home/egervari/Programs/android-sdk-linux_x86/platforms/android-7/tools/aapt”: java.io.IOException: error=2, No such file or directory 所以我尝试手动运行它,只是为了它: egervari@ken:~/Programs/android-sdk-linux_x86/platforms/android-7/tools$ ./aapt bash: ./aapt: No such file or directory 这很奇怪,因为它就在那里: egervari@ken:~/Programs/android-sdk-linux_x86/platforms/android-7/tools$ ls -la total 4660 drwxr-xr-x 3 egervari egervari 4096 2010-10-16 09:13 . drwxr-xr-x 8 egervari egervari 4096 2010-10-16 09:13 .. -rwxrwxrwx 1 egervari egervari 3472673 […]

使用Robospice和Scala在ORMLite中保存外来集合

我们在Scala上使用Android上的Robospice和ORMLite模块进行持久化,并且在将外部集合保存到数据库时遇到了困难。 数据正在正确接收(即我们正在使用几个post正确地解释和解释用户)但是当要将数据保存到缓存时,它无法保存外部集合。 我们一直在通过控制台获得此exception,但正如您所看到的,用户确实有一个setter和getter,所以我们不确定问题是什么。 java.lang.IllegalArgumentException: Could not find appropriate set method for private java.util.Collection scaloid.scala_test.models.User.posts at com.j256.ormlite.field.DatabaseFieldConfig.findSetMethod(DatabaseFieldConfig.java:576) at com.octo.android.robospice.persistence.ormlite.InDatabaseObjectPersister.saveAllForeignObjectsToCache(InDatabaseObjectPersister.java:192) at com.octo.android.robospice.persistence.ormlite.InDatabaseObjectPersister$1.call(InDatabaseObjectPersister.java:96) at com.octo.android.robospice.persistence.ormlite.InDatabaseObjectPersister$1.call(InDatabaseObjectPersister.java:91) at com.j256.ormlite.misc.TransactionManager.callInTransaction(TransactionManager.java:168) at com.j256.ormlite.stmt.StatementExecutor.callBatchTasks(StatementExecutor.java:553) at com.j256.ormlite.dao.BaseDaoImpl.callBatchTasks(BaseDaoImpl.java:633) at com.j256.ormlite.dao.RuntimeExceptionDao.callBatchTasks(RuntimeExceptionDao.java:534) at com.octo.android.robospice.persistence.ormlite.InDatabaseObjectPersister.saveDataToCacheAndReturnData(InDatabaseObjectPersister.java:91) at com.octo.android.robospice.persistence.CacheManager.saveDataToCacheAndReturnData(CacheManager.java:77) at com.octo.android.robospice.request.DefaultRequestRunner.saveDataToCacheAndReturnData(DefaultRequestRunner.java:265) at com.octo.android.robospice.request.DefaultRequestRunner.processRequest(DefaultRequestRunner.java:172) at com.octo.android.robospice.request.DefaultRequestRunner$1.run(DefaultRequestRunner.java:216) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) 这是用户模型。 @JsonIgnoreProperties(ignoreUnknown = true) @DatabaseTable(tableName […]

如何保持* .scala和* .txt等文件不被包含在我的apk文件中?

我正在尝试使用IntelliJ IDEA在Scala中编写Android应用程序。 我能够得到apk构建并运行得很好,但我注意到文件被添加到我的apk应该不存在。 例如,我的所有scala源文件以及scala库jar中的rootdoc.txt都被包含在内。 我正在使用android sdk提供的默认ant build系统设置。 我试图尽可能避免使用SBT。

斯卡拉是给我的吗? (C#开发人员专注于function/ OOP风格)

我想学习一种新的编程语言并为Android平台开发。 我是一名全职的C#/ F#开发人员,我也尽可能以最实用的方式使用C#(因为我喜欢这种模式远比旧的skool风格更好“让迭代并向酒吧老板描述如何制作鸡尾酒”,引用微软)。 但是,我非常不喜欢Java,因为在我看来它已经过时了,嗯,恐龙 – 它缺乏我最喜欢C#和F#的function。 另一方面,为Android平台开发需要使用JDK。 所以,你会推荐Scala吗? 或者JDK的东西根本不适合我?

在Android中使用Scala中的Java常量

我在Android上使用Scala进行开发时遇到了一个奇怪的问题。 我正在使用sbt android插件,现在我正在努力让内容提供商工作,但…… 我需要获得一系列列,我在这里完全像在教程中那样: http : //developer.android.com/guide/topics/providers/content-providers.html 刚用Scala替换了Java的数组代码。 它看起来像这样: val projection = Array( People.NAME, People.NUMBER ) 但是,scala编译器返回错误 [error] /home/exine/proj/hello-world/src/main/scala/Activity.scala:12: value NAME is not a member of object android.provider.Contacts.People [error] People.NAME, [error] ^ [error] one error found 实际上它是这个对象的成员,它在接口android.provider.Contacts.PeopleColumns(由People实现)中定义。 我也试过直接从PeopleColumns获取它而没有任何成功(同样的错误)。 在Scala中从Java中获取常量有些不同,或者我在某处犯了一个愚蠢的错误? 更新: 下一个问题。 使用ContactsContract.Contacts错误时保持不变,并且在尝试其他方法时,我无法直接访问ContactsContract.ContactsColumns,因为它是受保护的接口。 [error] /home/exine/proj/hello-world/src/main/scala/Activity.scala:13: object ContactsColumns cannot be accessed in object android.provider.ContactsContract [error] ContactsColumns.LOOKUP_KEY, [error] […]

IntelliJ 14中的Android / Scala项目编译,但在启动时没有findScala类时崩溃

我在Intellij 14中创建了一个新的Android项目,然后向它添加了Scala SDK 2.11.6( provided的范围是唯一对我有用的选项)。 如果我不使用任何Scala类,该项目运行正常。 但是,一旦我使用字符串插值,一旦代码运行,应用程序就会崩溃并出现此错误: 06-20 18:36:27.277 1995-1995/com.pcn.android.games.jacks D/AndroidRuntime﹕ Shutting down VM 06-20 18:36:27.289 1995-1995/com.pcn.android.games.jacks E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.pcn.android.games.jacks, PID: 1995 java.lang.NoClassDefFoundError: Failed resolution of: Lscala/StringContext; at com.pcn.android.games.jacks.MyActivity.onCreate(MyActivity.scala:16) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5257) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) […]

如何降级android studio gradle中的proguard版本?

我正在尝试使用scala和android studio构建一个Android应用程序。 编译在proguard失败,但有exception: Error:java.lang.ArrayIndexOutOfBoundsException: 4 at proguard.classfile.editor.InterfaceDeleter.visitSignatureAttribute(InterfaceDeleter.java:162) at proguard.classfile.attribute.SignatureAttribute.accept(SignatureAttribute.java:97) 我发现在另一个地方( http://sourceforge.net/p/proguard/bugs/549/ )这个问题是由scala中的一个错误引起的,但它只发生在proguard 5.1而不是proguard 5.0中。 现在我的问题是:如何设置android studio以便它将使用proguard 5.0?

在Scala和Gradle中使用AndroidAnnotations

是否可以将AndroidAnnotations与Scala编程语言和Gradle构建系统一起使用? 当我尝试将AndroidAnnotations集成到我现有的Android / Scala / Gradle项目中时,编译失败,因为无法find生成的下划线类(例如MyActivity_)。 以下是一些有用的起点和参考: http://www.scala-lang.org/node/4773(2010-01-06 ) http://www.scala-lang.org/sid/5(2010-01-27 ) http://code.google.com/p/androidannotations/wiki/Configuring(2011-07-28 ) http://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/ch08.html#d0e2816(2010 ?) 使用Ant进行Java 6注释处理配置 (2010-09-05) http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html#processing http://ant.apache.org/manual/Tasks/apt.html 从Gradle构建脚本生成JPA2元模型 (2011-06-22) http://download.oracle.com/javase/1.5.0/docs/guide/apt/GettingStarted.html

gradle-android-scala-plugin给出“找不到匹配的构造函数”错误

将此示例代码导入Android Studio会出现此错误: 错误:(17,0)无法find匹配的构造函数:org.gradle.api.internal.tasks.DefaultScalaSourceSet(java.lang.String,org.gradle.api.internal.file.BaseDirFileResolver) 的build.gradle: buildscript { repositories { mavenCentral() } dependencies { classpath “com.android.tools.build:gradle:2.0.0” classpath “jp.leafytree.gradle:gradle-android-scala-plugin:1.4” } } repositories { jcenter() } apply plugin: “com.android.application” android{ compileSdkVersion “android-23” buildToolsVersion “23.0.1” } apply plugin: “jp.leafytree.android-scala” android { defaultConfig { targetSdkVersion 23 testInstrumentationRunner “com.android.test.runner.MultiDexTestRunner” versionCode 1 versionName “1.0” multiDexEnabled true } productFlavors { dev { minSdkVersion 21 […]