Tag: 安卓

Kotlin意图错误

我有以下代码,并与意图得到一个错误。 正因为this我相当肯定。 listView.onItemClickListener = object : OnItemClickListener { override fun onItemClick(parent: AdapterView, view: View, position: Int, id: Long) { val intent = Intent(this, MyActivity::class.java) startActivity(intent) } }

与Kotlin事件总线不工作

我是Android新手,尝试使用EventBus将消息从Fragment发送到其容器Activity。 但是,我收到错误: D/EventBus: No subscribers registered for event class com.app.todo.controllers.task.TaskListFragment$TaskCreateSelectEvent 以下是与EventBus相关的Activity类中的代码: public class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } @Subscribe(threadMode = ThreadMode.MAIN) fun onTaskCreateSelectEvent(event: TaskListFragment.TaskCreateSelectEvent) { Log.d(“TAG”, “On Main Activity”) } fun addFragment(fragment: Fragment) { val transaction = supportFragmentManager.beginTransaction() transaction.setCustomAnimations(R.anim.enter, R.anim.exit, R.anim.pop_enter, R.anim.pop_exit) transaction.add(R.id.task_fragment_container, fragment) transaction.addToBackStack(fragment.javaClass.simpleName) transaction.commit() } public […]

SonarQube可以分析Android Kotlin代码覆盖率吗?

我已经配置了一个Jenkins项目,在gradle构建和测试之后,调用以下规格的“Execute SonarQube Scanner”: sonar.projectKey=my_project_key sonar.projectName=my_Android sonar.projectVersion=1.0 sonar.sources=app/src sonar.java.binaries=app/build/intermediates/classes/debug sonar.coverage.exclusions=app/src/test/**,app/src/androidTest/**,app/src/main/res/** 这成功地运行SonarQube,并生成一个IP地址:9000的报告,测量:错误,漏洞,债务,代码嗅觉,和复制就像它应该。 然而,这个报告没有定义测试覆盖的代码。 SonarQube正在成功运行Kotlin插件并查看代码库本身,但是没有确定覆盖范围。 在使用Kotlin Android时,是否可以使用SonarQube来收集这些信息? 我确实尝试安装Jacoco,但在SonarQube结果中没有看到任何新的数据。

为什么我不能指定我的Kotlin文件在Android Studio中的位置?

我的问题是以下几点: 我正在使用Android Studio 3.0.1,并试图尽可能快地创建新文件(使用MVP可能是Kotlin的挑战)。 例如,在Java中,您可以find以下内容: 然后,如果您在Option + Enter上单击(根据您的计算机),我可以选择创建我的界面: 我可以选择包和它将被放置的文件夹: 但是当我和Kotlin在一起时: 它只是让我选择类容器(我想要导入它,外部设置) Android Studio没有配备这个function的原因吗?

Kotlin – 如何将null值传入片段newInstance方法?

我已经使用Kotlin创建了一个片段,并且知道如何使用便捷的静态方法来设置Java中的片段参数。 喜欢这个: public static MyFragment newInstance(Bundle args){ MyFragment fragment = new MyFragment(); fragment.setArguments(args); return fragment; } 我试图在Kotlin中使用伴侣对象来实现这一点,因为它是静态的。 这是我迄今为止编译的内容: companion object { fun newInstance(@Nullable b: Bundle): MyFragment { val frag = MyFragment() frag.arguments = b return frag } } 我在想,如果我使用@Nullable注解,我将被允许传递null的包,但我不断收到以下错误,当我调用MyFragment.newInstance(null) : 致命例外:主进程:com.mobile.MyApp.labs,PID:5758 java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数b在com.mobile。 MyApp.ui.cart.fragments.MyFragment $ Companion.newInstance(MyFragment.kt:0)at com.mobile.MyApp.ui.cart.fragments.CartDetailsFragment.onCtaClicked(CartDetailsFragment.java:521)at com.mobile.MyApp。 ui.cart.fragments.CartDetailsFragment_ViewBinding $ android.view.View.performClick(View.java:6256)在androidknockknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)$ 1.doClick(CartDetailsFragment_ViewBinding.java:66)。 view.View android.os.Handler.handleCallback(Handler.java:789)android.os.Handler.dispatchMessage(Handler.java:98)android.os.Looper上的$ PerformClick.run(View.java:24701) .loop(Looper.java:164)at […]

Kotlin Gson反序列化

我正在接收具有地图包装器表的JSON数据模型。 我试图使用generics来传递超越包装的types,但它不能很好地在运行时翻译。 这里是我的JSON文件的一个例子: { “Table”: [ { “paymentmethod_id”: 1, “paymentmethod_description”: “Cash”, “paymentmethod_code”: “Cash”, “paymentmethod_is_ach_onfile”: false, “paymentmethod_is_element”: false, “paymentmethod_is_reward”: false, “paymentmethod_is_openedgeswipe”: false, “paymentmethod_update_user_id”: 1, “paymentmethod_insert_user_id”: 1, “paymentmethod_insertdate”: “2014-10-07 14:53:16”, “paymentmethod_deleted”: false, “paymentmethod_is_mobile_visible”: true } ] } 我使用的包装类叫做Table。 data class Table( @SerializedName(“Table”) val models : Array ) 实际的模型类是PaymentMethod。 data class PaymentMethod( @SerializedName(“paymentmethod_id”) val idNumber : Int = […]

Kotlin扩展function – 如何使其成为全球?

我已经在Android ViewGroup类上创建了一个Kotlin扩展函数,以便它可以更轻松地进行布局膨胀调用。 所以,这是我的扩展: fun ViewGroup.inflate(layoutRes: Int): View { return LayoutInflater.from(context).inflate(layoutRes, this, false) } 然后我可以在适配器类中使用它来扩充布局: override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val v = parent.inflate(R.layout.view_item) return ViewHolder(v) } 我已经在适用于RecyclerView的适配器类中声明了这个扩展,这样可以使通货膨胀调用更容易。 但是我想要所有的适配器,或者我应该说所有的ViewGroup类来看这个扩展。 我想永久。 它似乎只是坚持在我宣布它不全球的地方。 我应该在哪里声明这个扩展,以便在任何时候使用视图组时,这个方法扩展将是可用的?

RxJava和Kotlin的花括号和正常括号有什么区别?

我不明白使用RxJava时,大括号和Kotlin中的正常括号之间的真正区别。 例如,我有以下代码,它按预期工作: someMethodThatReturnsCompletable() .andThen(anotherMethodThatReturnsACompletable()) .subscribe(…) 但以下不起作用: someMethodThatReturnsCompletable() .andThen { anotherMethodThatReturnsACompletable() } .subscribe(…) 用大括号注意链中的andThen()部分的区别。 我不明白这两者之间的区别是什么。 我已经看了一些文章,但不幸的是,我仍然很难理解这种微妙的差异。

从android项目中删除所有未使用的资源

我想从我的Android res目录中删除所有未使用的布局,字符串,drawables,颜色等。 是否有任何工具可以给我一个文件列表,我可以从我的存储库中删除和不再使用的特定文件(例如未使用的字符串条目)中的元素?

Kotlin android studio我试图改变按钮文本,但得到一个“一个布尔型的值”消息

Android Studio中的Kotlin。 我试图改变按钮的文字,但我得到了“一个布尔types的值”消息。 我怎样才能解决这个问题? button11.setOnLongClickListener{ button11.text = “” }