Tag: 安卓

预期的类型布尔值:弹出式菜单的值

我正在尝试做一个弹出菜单,并根据哪个项目被点击发生的事情。 菜单项的点击监听器需要一个返回类型为Boolean的类型。 我已经给它一个返回类型,但它仍然全部显示为“期望值类型布尔值”的消息。 有人能告诉我我在这里有什么错吗? (我知道我没有做菜单点击做任何事情) val menuButton = findViewById<Button>(R.id.categoryImageButton) menuButton.setOnClickListener(View.OnClickListener { fun onClick(view: View){ val popup = PopupMenu(this,menuButton) popup.menuInflater.inflate(R.menu.popup_menu, popup.menu) popup.setOnMenuItemClickListener(PopupMenu.OnMenuItemClickListener { **fun onMenuItemClick(item: MenuItem): Boolean { when (item.itemId) { R.id.techItem -> { return true } R.id.clothItem -> { return true } else -> return false } }** }) } })

decimalFormat.format()错误

decimalFormat声明如下所示: private var decimalFormat: DecimalFormat? = null decimalFormat = DecimalFormat("#.##########") 要传递给format()方法的值是: private var valueOne= java.lang.Double.NaN private var valueTwo: Double = 0.toDouble() 我试图做一个计算器的应用程序,当我将valueOne传递给format()方法时,我得到的错误是在运算符按钮中: binding!!.buttonAdd.setOnClickListener { computeCalculation() CURRENT_ACTION = ADDITION binding!!.infoTextView.setText(decimalFormat.format(valueOne) + "+") binding!!.editText.setText(null) } binding!!.buttonSubtract.setOnClickListener { computeCalculation() CURRENT_ACTION = SUBTRACTION binding!!.infoTextView.setText(decimalFormat.format(valueOne) + "-") binding!!.editText.setText(null) } binding!!.buttonMultiply.setOnClickListener { computeCalculation() CURRENT_ACTION = MULTIPLICATION binding!!.infoTextView.setText(decimalFormat.format(valueOne) + "*") binding!!.editText.setText(null) } […]

无法实例化活动| 引起:kotlin.KotlinNullPointerException

我得到这个错误 致命例外:主进程:com.demo.gandharv.exkotlin,PID:7742 java.lang.RuntimeException:无法实例化活动ComponentInfo {com.pantelwar.gandharv.scobokotlin / com.demo.gandharv.exkotlin.RegisterActivity}:kotlin。在android.app.ActivityThread.access $ 1100(ActivityThread.java:222)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3351)android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3095)上的KotlinNullPointerException。在android.app.ActivityThread的android.os.Looper.loop(Looper.java:158)上的android.os.Handler.dispatchMessage(Handler.java:102)app.ActivityThread $ H.handleMessage(ActivityThread.java:1796) .main(ActivityThread.java:7230)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230)at com.android.internal java.lang.reflect.Method.invoke(Native Method) .os.ZygoteInit.main(ZygoteInit.java:1120)由com.demo.gandharv.exkotlin.RegisterActivit引起的:kotlin.KotlinNullPointerException y。(RegisterActivity.kt:12)at android.app.Instrumentation.newActivity(Instrumentation.java:1096)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3085)at java.lang.Class.newInstance(Native Method) )at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3351)at android.app.ActivityThread.access $ 1100(ActivityThread.java:222)at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1796)at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:158)at android.app.ActivityThread.main(ActivityThread.java:7230)at java.lang.reflect .Method.invoke(Native Method)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 我已经在我的AndroidMenifest.xml中定义了RegisterActivity 。 我不知道为什么我得到这个错误。 这是我的LoginActivity.kt package com.demo.gandharv.exkotlin import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_login.* […]

更新searchView,同时删除查询android

我使用自定义的可搜索ListAdapter实现了一个searchView。 目前使用我有的代码,我可以实现我想要的大部分功能。 但是,当我按下退格键删除查询字符串时,查询结果在SearchView内部不会更新。 我实现onQueryTextChange()错了吗? 主要活动: val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager val searchMenuItem = menu!!.findItem(R.id.search) val searchView = searchMenuItem.actionView as SearchView searchView.setSearchableInfo(searchManager.getSearchableInfo(componentName)) searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener{ override fun onQueryTextSubmit(query: String?): Boolean { (listView.adapter as MessageListAdapter).filter.filter(query) return true } override fun onQueryTextChange(newText: String?): Boolean { (listView.adapter as MessageListAdapter).filter.filter(newText) return true } })

不能解决“内容长度和流长不一致”的错误

尝试执行以下代码时出现错误: fun parseErrorCodes(response: Response<*>): List<String> { val errorCodes: MutableList<String> = ArrayList() try { val listType = object : TypeToken<ArrayList<ApiError>>() { }.type val errorJson = JsonParser().parse(response.errorBody().string()).asJsonObject.get("response") if (errorJson.isJsonArray) { val errors = Gson().fromJson<List<ApiError>>(errorJson, listType) for (apiError in errors) { errorCodes.add(apiError.errorCode) } return errorCodes } else { errorCodes.add(Gson().fromJson(errorJson, ApiError::class.java).errorCode) return errorCodes } } catch (e: Exception) { […]

在android中加载页面加载firebase数据

我搜索了很长时间,我只能找到一个解决方案使用addListenerForSingle事件触发onDataChanged。 它只在数据库发生变化时触发。 我怎样才能得到一个页面加载的单个值(我的意思是onCreate)? 例如,获取密钥真的很容易, mReference.child("kotran").child("isactive").getKey() //isactive 但是没有办法获得价值。

Runnable不能在Android上的浮动操作栏上运行

我一直在试图让晶圆厂旋转并改变它的图标,但由于某种原因, Runnable根本不起作用。 这里是代码: private val handler: Handler = Handler() private var isRotate: Boolean = false private val rotate: Animation = RotateAnimation(0.toFloat(),90.toFloat(),0.toFloat(),0.toFloat()) private val r: Runnable = Runnable { fun run() { if (isRotate) { fab2.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.ic_menu_camera, null)) isRotate = false } else { fab2.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.ic_menu_gallery, null)) isRotate = true } } } override fun onCreate(savedInstanceState: […]

NotificationManager.setInterruptionFilter不适用于某些电话

val notificationManager:NotificationManager = context.getSystemService( Context.NOTIFICATION_SERVICE ) as NotificationManager notificationManager.setInterruptionFilter( NotificationManager.INTERRUPTION_FILTER_ALL ) 代码很简单,只需更改InterruptionFilter,我已经获得了DoNotDisturb权限,它可以在模拟器上运行。 但是,当我在一个真实的设备(OnePlus3)上进行测试时,它与模拟器(安装了Google服务的Android 7.1.1 API25)具有相同的系统,但不起作用。 代码执行,没有错误,没有改变,这意味着它不会将当前过滤器从INTERRUPTION_FILTER_NONE更改为INTERRUPTION_FILTER_ALL 。 什么发生,如何解决?

Android工作室是制作手机游戏的充足工具吗?

我一直在学习如何在Android工作室创建应用程序,并想知道是否可以用高级图形或只是像2048这样简单的游戏来制作整个游戏。

如何将UTC日期转换为Android上的区域GMT时间

我有这个日期字符串: 2016-04-26T09:14:10.477Z在UTC时区。 我想将它转换为用户本地时区,所以如果是格林尼治标准时间+02:00,我想要一个值为2016-04-26T11:14:10.477Z (注意到9的变化为11)。 我一直在使用这个: val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.getDefault()) val now = Date() val limit = sdf.parse(coupon.usedAt) 这里limit = Tue Apr 26 09:14:10 GMT+02:00 2016这是不正确的,我想。 那么我怎样才能正确地转换它? 谢谢! 编辑:我的问题不同于这一个 ,因为我需要使用对象SimpleDateFormat而不是Date之一