Questions tagged «kotlin»

Kotlin是JetBrains支持的一种开源静态类型编程语言。Kotlin结合了OOP和功能特性,并专注于互操作性,安全性,清晰度和工具支持。它目前针对JVM和JavaScript,并且是Android上官方支持的语言。


6
Kotlin:类中的对象和伴侣对象之间的区别
Kotlin中的类中的对象和同伴对象有什么区别? 例: class MyClass { object Holder { //something } companion object { //something } } 我已经读过,如果包含的参数/方法与其类紧密相关,则应使用该伴随对象。 但是,为什么还可以在类中声明一个普通对象呢?因为它的行为完全类似于同伴,但是必须有一个名称。 它的“静态”(我来自Java方面)生命周期是否可能有所不同?

2
Kotlin中的线程和协程之间的区别
Kotlin中是否有任何特定的语言实现方式与协程的其他语言实现方式不同? 什么是协程像轻质螺纹? 有什么不同? Kotlin协程是否实际上并行/并发运行? 即使在多核系统中,在任何给定时间都只有一个协程运行(对吗?) 在这里,我要启动100000个协程,这段代码后面会发生什么? for(i in 0..100000){ async(CommonPool){ //run long running operations } }


4
显示对话框的软键盘
我正在显示一个带有edittext视图的对话框。但是,仅当用户在editview中按下时,软键盘才会打开。因此,我尝试使用以下代码调用InputMethodManager。 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(dialogField,0); dialogField是输入字段。但是,我到底应该在什么时候这样做呢?我在对话框的onStart()方法中尝试过,但没有任何反应。我也尝试过为dialogField请求焦点,但这没有任何改变。 我也尝试过这段代码 dialogField.setOnFocusChangeListener(new View.OnFocusChangeListener() { public void onFocusChange (View v, boolean hasFocus) { if (hasFocus) { Main.log("here"); dialogInput.getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); /* InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mgr.showSoftInput(dialogField,0); */ } } }); 在两个版本中。但是没有软键盘想要出现。Main.log只是一个日志,它向我显示该函数实际上已被调用。是的,它被称为。 在对话框打开之前,我可以使用SHOW_FORCED标志获取键盘。但是,它不会在退出时关闭。在显示对话框之前,我只能这样做。在任何回调中,它也不起作用。

17
在Kotlin中定义log TAG常数的最佳方法是什么?
我正在Android应用程序中创建第一个Kotlin类。通常出于记录目的,我有一个名为name的常量TAG。我在Java中要做的是: private static final String TAG = MyClass.class.getSimpleName(); 我知道在Kotlin类中可以TAG使用以下方式创建: private val TAG = MyClass::class.java.simpleName 这对于使用Java和Kotlin的项目是可以的,但是如果我启动仅在Kotlin中的新项目该怎么办?如何定义TAG常数?在我没有这种奇怪构造的情况下,还有更多的科特林方式class.java.simpleName吗?


8
将Kotlin数据对象映射到数据对象的更好方法
我想将一些“数据”类对象转换/映射为类似的“数据”类对象。例如,Web表单的类到数据库记录的类。 data class PersonForm( val firstName: String, val lastName: String, val age: Int, // maybe many fields exist here like address, card number, etc. val tel: String ) // maps to ... data class PersonRecord( val name: String, // "${firstName} ${lastName}" val age: Int, // copy of age // maybe …

11
Kotlin中的HTTP请求
我是Kotlin的新手。我想使用POST方法进行登录验证,并使用GET方法获取一些信息。我已经有上一个项目的URL,服务器用户名和密码。我没有找到任何适当的示例项目使用此东西。任何人都可以向我建议任何可以在HTTP请求中使用GET和POST方法的工作示例
75 android  kotlin 

12
在Kotlin中具有参数的Singleton
我正在尝试将Android应用程序从Java转换为Kotlin。应用中有一些单例。对于没有构造函数参数的单例,我使用了一个伴随对象。还有另一个采用构造函数参数的单例。 Java代码: public class TasksLocalDataSource implements TasksDataSource { private static TasksLocalDataSource INSTANCE; private TasksDbHelper mDbHelper; // Prevent direct instantiation. private TasksLocalDataSource(@NonNull Context context) { checkNotNull(context); mDbHelper = new TasksDbHelper(context); } public static TasksLocalDataSource getInstance(@NonNull Context context) { if (INSTANCE == null) { INSTANCE = new TasksLocalDataSource(context); } return INSTANCE; } …
75 android  kotlin 

15
如何在Android上使用Kotlin显示Toast?
在Android的不同Kotlin示例中,我看到toast("Some message...")或toastLong("Some long message")。例如: view.setOnClickListener { toast("Click") } 据我了解,它是的扩展功能Activity。 您如何以及在何处定义此toast()功能,以便可以在整个项目中使用它?
75 android  kotlin 

15
找不到字段的设置器-将Kotlin与Room数据库一起使用
我正在与Room持久性库集成。我在Kotlin中有一个数据类,例如: @Entity(tableName = "story") data class Story ( @PrimaryKey val id: Long, val by: String, val descendants: Int, val score: Int, val time: Long, val title: String, val type: String, val url: String ) 在@Entity和@PrimaryKey注解是为客房库。当我尝试构建时,它因错误而失败: Error:Cannot find setter for field. Error:Execution failed for task ':app:compileDebugJavaWithJavac'. > Compilation failed; see the …

9
如何获得科特林的当前本地日期和时间
如何在Kotlin的本地时间获取当前的Date(日期,月份和年份)和时间(小时,分钟和秒)? 我尝试了一下,LocalDateTime.now()但这给了我一个错误Call requires API Level 26 (curr min is 21)。 如何在科特林得到时间和日期?

9
Android动画Alpha
我有动画: <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator"> <alpha android:fromAlpha="0.2" android:toAlpha="1.0" android:duration="500"/> </set> 和ImageView: <ImageView android:id="@+id/listViewIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/settings" android:alpha="0.2"/> 和代码: final Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); final ImageView iv = (ImageView) findViewById(R.id.listViewIcon); anim .setFillAfter(true); iv.startAnimation(anim); 因此,一开始我要ImageView使用alpha 0.2,而最后我要ImageView使用alpha 1。但这不是那样的-动画开始时会添加更多的alpha,动画以alpha完成0.2 我有什么改变为从动画我的形象0.2最多1? 我检查了不同的设置-我设置android:alpha="1.0",fromAlpa="1.0",toAlpha="0.2"它就像我的预期-从阿尔法1到0.2。看起来来自ImageView的alpha乘以来自动画的alpha ...

2
Kotlin:“ return @”是什么意思?
我在我的一个项目中使用RxJava,我使用Android Studio插件将我的一个类转换为Kotlin,并且在map flatMaplambda(java中的Func1)之一中,中间体返回如下所示@Func1。 我不知道这是什么意思。 something.flatMap(Func1<ArticleCriteria, Observable<Pair<String, String>>> { val isTemporaryClone = it.isATemporaryClone val isTheOriginalToken = it.tokenIsOriginalHere if (isTemporaryClone) { if (!isTheOriginalToken) { return@Func1 paramsError("Token is always original for temp articles") } return@Func1 mJobRunner.doNotRun(DeleteArticleJob.TAG) .doOnNext(deletePersonalActionById(articleId)) } runArticleJobAsync(DeleteArticleJob.TAG, it) })

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.