小编Nic*_*ico的帖子

如何解析资产中的本地JSON文件?

我的资产文件夹中有一个JSON文件.该文件有一个带有数组的对象.该阵列有150多个对象,每个对象有三个字符串.

对于这150多个对象中的每一个,我想提取每个字符串并创建一个java模型对象,并传递三个字符串.我在android JSON解析中找到的所有教程都是从我不想做的url中获取JSON.

android json android-assets

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

如何突出显示所有被点击的变量实例?

Netbeans的 Android Studio

第一张图片是我的Netbeans IDE.正如您在文本光标放在变量上时所看到的那样,该变量会在出现的任何其他位置突出显示.我发现此功能非常有用,并希望在Android Studio上启用它(第二张图片).

android netbeans syntax-highlighting android-studio

7
推荐指数
1
解决办法
1100
查看次数

如何将协程范围限定为片段,以便在片段离开屏幕或被销毁时自动取消?

我有这个片段,它在检索数据时充当启动屏幕。问题是,在配置更改时或者如果 Fragment 位于屏幕外(用户导航出应用程序),当它从 IO 协程块返回并尝试在主协程块中执行导航时,它会崩溃。

这是代码:

注意:viewModel.repository.initData()如果数据不存在或过时,则进行 Retrofit 调用并将响应保留到 Room 数据库。

class LoadingFragment : Fragment() {

    private lateinit var viewModel: LoadingViewModel

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.fragment_loading, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        viewModel = ViewModelProvider(this).get(LoadingViewModel::class.java)
        CoroutineScope(Dispatchers.IO).launch {
            // Small delay so the user can actually see the splash screen
            // for a moment as feedback of an attempt to retrieve data.
            delay(250)
            try {
                viewModel.repository.initData() …
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlin-coroutines android-jetpack-navigation

5
推荐指数
1
解决办法
9763
查看次数

无法使用材质组件库设置按钮的背景颜色

我的代码:

<Button
     android:id="@+id/button_one"
     style="@style/ButtonStyle"
     android:text="@string/button_one" />
Run Code Online (Sandbox Code Playgroud)
<style name="ButtonStyle">
     <item name="android:textSize">32sp</item>
     <item name="android:textColor">@drawable/background_button_text_color</item>
     <item name="android:background">@drawable/background_button</item
</style>
Run Code Online (Sandbox Code Playgroud)

背景按钮.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" android:state_pressed="true" />
    <item android:drawable="@android:color/transparent" android:state_pressed="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)

背景_按钮_文本_颜色.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/black" android:state_pressed="true" />
    <item android:color="@android:color/white" android:state_pressed="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)

当按下按钮时,我得到的是黑色背景而不是白色。不确定我做错了什么。有什么帮助吗?
我正在1.2.0-alpha06使用并使用Theme.MaterialComponents.DayNight.NoActionBar.

android android-styles material-design material-components material-components-android

5
推荐指数
4
解决办法
3434
查看次数

如何在 Kotin 的实例方法中使用构造函数中的属性?

这是我的代码。

class Repository(context: Context) {

    // Can access 'context' from here
    val mSharedPrefsProperties = context
        .getSharedPreferences(context.packageName.plus(".properties"), Context.MODE_PRIVATE)

    // Can't access 'context' in this function (unresolved reference: context)
    private fun getApiKey(): String {
        val apiKeys = context.resources.getStringArray(R.array.api_keys)
        val random = Random().nextInt(apiKeys.size)
        return apiKeys[random]
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法从函数内部的构造函数访问属性,还是需要将它们设为实例/局部变量?

android constructor scope instance-variables kotlin

0
推荐指数
1
解决办法
46
查看次数

BigDecimal 除法方法返回 0 还是 ArithmeticException?

当我尝试使用以下方法划分 BigDecimals 时:

divide(divisor, RoundingMode.HALF_UP)

它返回 0

在此处输入图片说明

但是,如果我没有这样的舍入模式就这样做:

divide(divisor)

我得到一个 ArithmeticException

在此处输入图片说明

我不在乎数字是否不是精确的十进制表示。如何在不得到 0 或异常的情况下划分 BigDecimals?

java double rounding division bigdecimal

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