Articles of kotlin

修剪字符串函数中的“it ​​<=''”在这里意味着什么

有一个java代码来修剪字符串 String title = titleEt.getText().toString().trim(); 当覆盖到kotlin时,我认为这应该是用于修剪前导空间和尾随空间的kotlin代码。 val title = titleEt.text.toString().trim() 但IDE会生成此代码 val title = titleEt.text.toString().trim { it <= ' ' } 这里的{it <=''}是什么,它是否少于''?

Kotlin自定义对话框参数指定为非null

我收到了这个错误: 引起:java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数savedInstanceState 当我试图在Kotlin中膨胀自定义对话框时,我在对话框中的super.onCreate行上得到了我上面写的错误。 对话框代码是: class Custom_Dialog_Exit_App(var activity: Activity)// TODO Auto-generated constructor stub : Dialog(activity, R.style.full_screen_dialog) { override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) requestWindowFeature(Window.FEATURE_NO_TITLE) setContentView(R.layout.custom_dialog_exit_app) activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT) initView() } fun initView() { initClicks() } fun initClicks() { } } 而init是: val omer = Custom_Dialog_Exit_App(this@MainActivity) omer.show() 请帮忙

使用Kotlin Android Extensions以编程方式夸大布局

我有以下布局: 当我想在下面的活动之外使用kotlin android扩展时 ,它不起作用。 我最终做了findViewById。 … … import kotlinx.android.synthetic.main.dialog_error.* … … val view = LayoutInflater.from(context).inflate(R.layout.dialog_error, null, false) val tvErrorTitle = view.findViewById(R.id.tvErrorTitle) as TextView val tvErrorDesc = view.findViewById(R.id.tvErrorDesc) as TextView val tvErrorAction = view.findViewById(R.id.tvAction) as TextView 它不会直接从xml中提取视图。 如何在programetically inflated布局中使用它并避免findViewById ? 注意 :这个问题严格属于Kotlin Android Extensions ,而不是语言本身。 编辑我已导入两个: import kotlinx.android.synthetic.main.dialog_error.view.* import kotlinx.android.synthetic.main.dialog_error.* 但Android Studio仍尝试从R.id导入,并且无法识别这两个导入。 有什么遗漏?

(Android Studio 3.2 Beta) – 导航架构组件配置

我想尝试新的导航架构组件function,所以我遵循了这个教程: https : //www.youtube.com/watch?v = GOpeBbfyb6s 。 我正在使用Android Studio 3.2 Beta 1.我安装了必要的依赖项,但是当我尝试在项目中创建导航Android资源文件时 ,就像在上面的video中一样, 导航选项不会出现在选择菜单中。 我的问题: 尝试创建导航Android资源文件时,没有要选择的导航选项。 我错过了安装中的任何步骤吗? 预期结果: 我的情况: 我的build.gradle dependencies { implementation fileTree(dir: ‘libs’, include: [‘*.jar’]) implementation”org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version” implementation ‘com.android.support:appcompat-v7:27.1.1’ implementation ‘com.android.support.constraint:constraint-layout:1.1.2’ testImplementation ‘junit:junit:4.12’ androidTestImplementation ‘com.android.support.test:runner:1.0.2’ androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.2’ // Navigation Architecture Component Configuration install HERE!! def nav_version = “1.0.0-alpha02” implementation “android.arch.navigation:navigation-fragment-ktx:$nav_version” // use -ktx for […]

使用kotlin的自定义flavor中的ClassNotFoundException

我定义了自己的味道并设置了sourceSet: sourceSets { main.java.srcDirs += ‘src/main/kotlin’ // WORKS myflavor.java.srcDirs += ‘src/myflavor/kotlin’ // DOESN’T WORK } 这是我的项目结构: 但是……我收到以下错误: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{xyz/xyz.MainActivity}: java.lang.ClassNotFoundException: Didn’t find class “xyz.MainActivity” on path: DexPathList[[zip file “/data/app/xyz/base.apk”],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) […]

如何使用Kotlin enum与Retrofit?

如何使用枚举将JSON解析为模型? 这是我的枚举类: enum class VehicleEnumEntity(val value: String) { CAR(“vehicle”), MOTORCYCLE(“motorcycle”), VAN(“van”), MOTORHOME(“motorhome”), OTHER(“other”) } 我需要将type解析为枚举 “vehicle”:{“data”:{“type”:“vehicle”,“id”:“F9dubDYLYN”}} 编辑 我已经尝试过标准方法,只需将我的枚举传递给POJO,它总是为空

在Kotlin中使用“m”前缀作为variables

好吧,使用variables名称的“m”前缀在编程中变得很常见,主要是在Android中,但是自从Kotlin到来之后,这个小问题让我感到困扰。 在父类中没有什么新东西,但是从另一个类设置和获取variables似乎并不舒服,因为在Java中我们创建(和命名)我们的setter和getter,所以我们可以省略“m”,什么不是发生在Kotlin,除非我们走向惯例的反面并重复Java的技术。 Java的: public class Foo { private String mName; public void setName(String name) { mName = name; } public String getName() { return mName; } } public class Main { public static void main(String[] args) { Foo foo = new Foo(); foo.setName(“Foo”); } } 科特林: fun main(args: Array) { val foo = Foo() foo.mName […]

Kotlin:找不到符号类Fragment或其他android类

我有一个带有viewPager的java片段。 public class FragmentWithViewPager extends Fragment { private class ViewPagerAdapter extends FragmentStatePagerAdapter { ViewPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { Fragment fragment = new DeshFalView(); //<– Problem here Bundle args = new Bundle(); args.putInt("index", i); fragment.setArguments(args); return fragment; } } } 现在我有另一个片段将填充在上面的片段中,并用kotlin写成: class DeshFalView : Fragment(), DeshfalContract.View { //More code… } […]

Android:无法使用CustomAdapter刷新Listview

我需要用新数据刷新列表视图。 下面的代码用于在第一次在FragmentActivity中的OnCreateView中获取数据。 override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val url = “something” val request_queue = Volley.newRequestQueue(this.context) val stringRequest = StringRequest(Request.Method.GET, url, Response.Listener { response -> val pending_job = Gson().fromJson<ArrayList<HashMap>>( response.toString(), object : TypeToken<ArrayList<HashMap>>() {}.type ) this@PlaceholderFragment.showList(rootView, R.id.pending_job_list, pending_job) pending_job_list_layout.setOnRefreshListener(this) request_queue.stop() }, Response.ErrorListener { error -> if (error.networkResponse != null) { Toast.makeText(this.context, […]

尝试在金丝雀上迁移5

我试图迁移到android-studio 3 canary 5并得到了这个错误 Error:Execution failed for task ‘:data:createFullJarDebug’. > java.util.zip.ZipException: duplicate entry: META-INF/data_debug.kotlin_module 在项目中我有3个模块app , data , domain ,我尝试添加 packagingOptions { exclude ‘META-INF/data_debug.kotlin_module’ } app和data但错误全部出现。 其他 在build.gradle我添加了 javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } } 将compile更改为implementation并删除retrolambda ,这就是我为迁移到新Android Studio所做的一切。 请帮我修复此错误。 更新 金丝雀7问题不会消失