小编Hen*_*usa的帖子

当使用Runnable从Handler使用notifyItemChanged时,RecyclerView崩溃[IllegalArgumentException]

RecyclerView用作列表来显示可以下载的歌曲.每个项目都有ProgressBarView.当下载开始时,我使用a Handler来通知每个项目更新ProgressBar以显示歌曲下载进度.

Q1.这是一种正确的方法吗?还是有其他方法可以更恰当地做到这一点.

Q2.当我们adapter.notifyItemChanged(position);用来更新单个项目的内容时,RecyclerView会崩溃.它是从Handler使用中调用的Runnable.但是,日志不会显示我的代码的任何痕迹.为什么?

以下是此问题的日志:

05-06 19:09:45.804: E/AndroidRuntime(32115): FATAL EXCEPTION: main
05-06 19:09:45.804: E/AndroidRuntime(32115): java.lang.IllegalArgumentException: Tmp detached view should be removed from RecyclerView before it can be recycled: ViewHolder{41b7bec0 position=6 id=-1, oldPos=-1, pLpos:-1 update changed tmpDetachedundefined adapter position no parent}
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:3861)
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView.removeAnimatingView(RecyclerView.java:779)
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView.access$5300(RecyclerView.java:127)
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView$ItemAnimatorRestoreListener.onAddFinished(RecyclerView.java:8228)
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView$ItemAnimator.dispatchAddFinished(RecyclerView.java:8573) …
Run Code Online (Sandbox Code Playgroud)

android recycler-adapter android-recyclerview

24
推荐指数
7
解决办法
8505
查看次数

API21的远程Genymotion设备连接失败

我在另一台本地PC上有一台Genymotion设备(由于性能下降)和另一台开发PC中的Android Studio.我可以从我的开发PC(使用adb connect 192.168.xx)连接任何低于API21的Genymotion设备,但任何带有API21的设备在我的开发PC中显示为离线,尽管adb可以很好地连接.在"设备选择"面板和设备监视器中,它显示offline.但是在远程PC中,相同的设备在线并且可以使用.为什么它显示onlineAPI低于21的设备和offlineAPI 21+.连接到我的远程Genymotion设备后,我得到以下内容.但同样的设备可以很好地在远程主机上运行.API21以下的任何设备都显示online.

在此输入图像描述

android adb android-emulator genymotion

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

当来自泛型函数时,Mockito thenReturn返回null

我想ResultSet在类中进行模拟,其参数来自泛型返回函数(getSQLValue):

public class MyClass{

    TableClass clsTableClass;

    public void getResults(Integer index, Integer value, String str) throws SQLException {

        try (ResultSet rsResult = clsTableClass.getRecords(
                getSQLValue(index, value, -1),
                getSQLValue(index, str, "")))
        {
            // do stuff
        }
    }

    private <T> T getSQLValue(Integer index, T t, T def) {
        return (index> 0) ? def : t;
    }
}
Run Code Online (Sandbox Code Playgroud)

带有签名方法的表类:

public class TableClass {

    public ResultSet getRecords(Integer value, String str)  {
        // do stuff
    }
Run Code Online (Sandbox Code Playgroud)

这是单元测试类:

public class MyClassTest {

    @Mock(name = …
Run Code Online (Sandbox Code Playgroud)

java generics mockito

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

Android Studio 中的时间跟踪工具窗口

在 IntelliJ IDEA 中有一个时间跟踪工具窗口,它提供了为活动任务启动和停止计时器的方法,我期待将其用作我项目的时间跟踪器。

这个选项在 Android Studio 中的什么位置?因为我试图找到它,但没有Time Tracking选择的Tool Windows

提前致谢。

intellij-idea android-studio

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

JsonArray使用Retrofit到Kotlin数据类(预期BEGIN_OBJECT但是BEGIN_ARRAY)

我正在使用Retrofit2

fun create(): MyApiService {

    return Retrofit.Builder()
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .baseUrl(BASE_URL)
                .build()
                .create(MyApiService::class.java)
}
Run Code Online (Sandbox Code Playgroud)

隐式转换以下Json

[
    {
        "id": 1,
        "name": "John",
    }, {
        "id": 2,
        "name": "Mary",
    }
]
Run Code Online (Sandbox Code Playgroud)

进入Kotlin数据类

object Model {
    data class Person(val id: Int, val name: String)
}
Run Code Online (Sandbox Code Playgroud)

但是,我Expected BEGIN_OBJECT but was BEGIN_ARRAY在尝试时遇到错误

@GET("/people.json")
fun getPeople() : Observable<Model.Person>
Run Code Online (Sandbox Code Playgroud)

我已经尝试将Model对象更改为从List扩展(正如您通常在使用Java的Retrofit 1中所做的那样)或创建一个人员List字段,但无济于事.

android list kotlin retrofit2 rx-java2

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