小编Ray*_*non的帖子

通过 Android Intent 传递协议缓冲区对象

Intent 可以交换任何SerializableParceable对象。但是 protobuf 对象没有实现 Serializable 或 Parceable。由于 protobuf 对象的实现将来可能会发生变化,因此不建议修改/扩展它们。

如何通过Android Intent数据从协议缓冲区消息(生成的类)交换

编辑:我使用的是 protobuf-2.3.0,其中GeneratedMessageGeneratedMessageLite没有实现可序列化。生成的消息于 2010 年 11 月 2 日开始实现 Serializable。Protobuf -2.4.1于 2011 年 4 月发布。

android protocol-buffers

4
推荐指数
1
解决办法
1431
查看次数

Scala最优雅的方式来处理选项并从Scala Map中抛出异常

我有一张地图,想要:

  • 检索值而不处理Option
  • 没有这样的密钥时记录消息.
  • 很好,当密钥不存在时返回默认值(除了记录消息).这是可选的,因为当代码在这里失败时,它不应该继续.

我有几种方法可以做到这一点

val map: Map[String, Int] // defined as such for simplification

// 1 short but confusing with error handling
def getValue(key: String): Int = {
    map.getOrElse(key, scala.sys.error(s"No key '$key' found"))
}

// in case you don't know scala.sys.error 
package object sys {
 def error(message: String): Nothing = throw new RuntimeException(message)
}
Run Code Online (Sandbox Code Playgroud)
// 2 verbose
def getValue(key: String): Int = {
    try {
      map(key)
    } catch {
      case _: Throwable => scala.sys.error(s"No key '$key' found")
    }
} …
Run Code Online (Sandbox Code Playgroud)

dictionary scala scala-option

4
推荐指数
1
解决办法
1206
查看次数

带有多个参数的 Kotlin setter

可以轻松地设置一个 setter,例如data 如何使用相同的方法设置 1 个以上的值?我用不雅的方法setData来完成它。

class MyClass{
    var data = listOf<GithubRepo>()  // individual setter
        set(value) {
            field = value
        }

    lateinit var listener: (GithubRepo) -> Unit // lambda

   // classical setter like in Java
   fun setData( data: List<GithubRepo>,  listener: (GithubRepo) -> Unit): Unit{
        this.data = data
        this.listener = listener
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有更多 Kotlin 方法可以从方法中设置多个变量?

setter kotlin

4
推荐指数
1
解决办法
460
查看次数

与android.app.Activity的组合

智慧的源头"有效的Java第二"说"赞成组合而不是继承"(第16项).现在谈到Android活动时,很容易从一个扩展,但是你打破了封装,代码可能会在超类被修改时中断.我试着写作.以下是组件Activity的代码:

public class SimpleActivity extends Activity{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView textview = new TextView(this);
        textview.setText("This is the Artists tab");
        setContentView(textview);
    }   
}
Run Code Online (Sandbox Code Playgroud)

这是作文.对于每个Activity的生命周期方法,我调用了forward方法.

public class ComposedActivity extends Activity {
    private SimpleActivity act;
    public ComposedActivity(){
        act = new SimpleActivity();
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        act.onCreate(savedInstanceState);
    }   
}
Run Code Online (Sandbox Code Playgroud)

但是应用程序不断崩溃:java.lang.NullPointerException.我究竟做错了什么 ?只是出于好奇而问.您建议在没有继承的情况下扩展活动?

inheritance android composition android-activity

3
推荐指数
1
解决办法
2234
查看次数

片段内的Android 1.6 TabHost

在演示Support4Demos - API 4+支持演示中,Tabs和TabsPager示例都扩展了FragmentActivity.每个标签内容本身就是一个片段.没有真正的突破,TabActivity以相同的方式使用而没有引入Fragment.

现在假设在我的Activity中,屏幕部分是名为WidgetFragment的片段.WidgetFragment如何包含TabHost?可视化活动中包含的迷你TabHost.我尝试了一种可能的方法在Fragment中插入TabHost而不是FragmentActivity.

android android-tabhost android-fragments android-support-library

3
推荐指数
1
解决办法
3734
查看次数

以编程方式将State"#e3bb87"添加到StateListDrawable

我需要以编程方式执行此操作的原因是文本颜色已下载,而不是在xml中预先定义.我以编程方式读取此 替换选择器图像

我只需要知道

StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed},
    getResources().getDrawable(R.drawable.pressed));
Run Code Online (Sandbox Code Playgroud)

如何变成

states.addState(new int[] {android.R.attr.state_pressed},**theMethodImLookingFor**("#e3bb87"));
Run Code Online (Sandbox Code Playgroud)

忘了getResources().getColor(R.color.anycolor),颜色没有在xml中定义

android textview android-selector android-drawable

3
推荐指数
1
解决办法
3500
查看次数

添加包含其他依赖项的模块依赖项

我正在使用IntelliJ 12.
我有一个Module A与github项目有模块依赖关系.我向我的主要添加了Module B一个依赖Module A.
Module A取决于module1,module2,module3,...
Module B取决于Module A

Module B没有找到任何提及module1,module2......这就是我如何宣称它在Eclipse("添加库项目")和它的作品.
现在,如果我加入Module Bmodule1,module2...这将影响到Module Bproject.properties搞乱使用Eclipse.我可以从Eclipse获得这个

Dex Loader]无法执行dex:多个dex文件定义
模块B]转换为Dalvik格式失败:无法执行dex:多个dex文件


IntelliJ从一个本身包含多个依赖项的模块中添加依赖项的正确方法是什么?

编辑 我按照CrazyCoder的指示.那么IntelliJ正在讲述

Android Dex:[模块B]意外的顶级例外:Android Dex:[模块B] java.lang.IllegalArgumentException:已添加:Landroid/support/v4/app/ShareCompat $ ShareCompatImplJB; Android Dex:[模块B]在com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)Android Dex:[Module B] at com.android.dx.dex.file.DexFile.add( DexFile.java:163)

一些module1,module2...在libs文件夹中包含android-support-v4.jar.jar依赖项已添加但未导出.只Module A导出其库(包含libs文件夹中的所有jar)

android intellij-idea

3
推荐指数
1
解决办法
2582
查看次数

将多个Future [Seq]连接为一个Future [Seq]

没有Future,这就是我将所有较小的Seq合并为带有平面图的一个大Seq的方式

category.getCategoryUrlKey(id: Int):Seq[Meta] // main method
val appDomains: Seq[Int]

val categories:Seq[Meta] = appDomains.flatMap(category.getCategoryUrlKey(_))
Run Code Online (Sandbox Code Playgroud)

现在该方法getCategoryUrlKey可能会失败。我在前面放置了一个断路器,以避免在经过maxFailures之后为下一个元素调用它。现在,断路器不会返回a Seq而是aFuture[Seq]

lazy val breaker = new akka.pattern.CircuitBreaker(...)

private def getMeta(appDomainId: Int): Future[Seq[Meta]] = {
  breaker.withCircuitBreaker {
    category.getCategoryUrlKey(appDomainId)
  }
}
Run Code Online (Sandbox Code Playgroud)

如何遍历List appDomains并将结果合并为一个Future [Seq],有可能合并为Seq?

如果可以使用函数式编程,是否有一种方法可以在没有临时变量的情况下直接进行转换?

scala future seq circuit-breaker

3
推荐指数
1
解决办法
1683
查看次数

相机2的单位 LENS_FOCUS_DISTANCE

我发现这个文档不清楚 https://developer.android.com/reference/kotlin/android/hardware/camera2/CaptureRequest#lens_focus_distance

镜头焦距的单位是什么?m(米)、cm、英寸

如果我设置如下

previewRequestBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE,0.20f);
Run Code Online (Sandbox Code Playgroud)

那么镜头焦距的单位是厘米、英寸?

镜头焦距简介

android android-camera2

3
推荐指数
1
解决办法
1916
查看次数

什么是这个Android循环视图

我经常在Android上看到这种UI模式.它由一个圆圈组成.

首先Google Fit会使用它.

在此输入图像描述

及时拥有相同的UI模式.并且您可以与它进行交互,更改计时器.

在此输入图像描述

它不是Android标准View的一部分.

  • 这个视图/ UI模式的名称是什么?
  • 你能给类似的开源库链接吗?

user-interface android android-view

2
推荐指数
1
解决办法
1785
查看次数