小编0x2*_*29a的帖子

无法为 retrofit2.Call 调用无参数构造函数

我有以下改造单身人士:

interface MyAPI
{
    @GET("/data.json")
    suspend fun fetchData() : Call<MyResponse>

    companion object
    {
        private val BASE_URL = "http://10.0.2.2:8080/"

        fun create(): MyAPI
        {
            val gson = GsonBuilder()
                .setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
                .create()

            val retrofit = Retrofit.Builder()
                .addConverterFactory( GsonConverterFactory.create( gson ) )
                .baseUrl( BASE_URL )
                .build()

            return retrofit.create( MyAPI::class.java )
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

MyResponse.kt

data class MyResponse(
    val listOfData: List<DataEntity>
)
Run Code Online (Sandbox Code Playgroud)

数据实体.kt

data class DataEntity(
    @SerializedName("name")
    val fullName: String
}
Run Code Online (Sandbox Code Playgroud)

我通过以下方式从 ModelView 调用代码:

viewModelScope.launch {
    try {
        val webResponse = MyAPI.create().fetchData().await()
        Log.d( tag, webResponse.toString() ) …
Run Code Online (Sandbox Code Playgroud)

kotlin retrofit

7
推荐指数
3
解决办法
3854
查看次数

正确覆盖 RecyclerView 动画

我有一个 RecycleView,其中显示了一个项目列表。我为 RecyclerView 指定默认动画师,如下所示:

recyclerView.setItemAnimator( new DefaultItemAnimator() );
Run Code Online (Sandbox Code Playgroud)

一切都很好,但我想使用我自己的自定义动画来添加/删除/更新列表中的元素。

我定义了一个自定义动画类,如下所示:

    public class MyAnimator extends RecyclerView.ItemAnimator {

    @Override
    public  boolean animateDisappearance(@NonNull RecyclerView.ViewHolder viewHolder, @NonNull ItemHolderInfo preLayoutInfo, @Nullable ItemHolderInfo postLayoutInfo) {
        return false;
    }

    @Override
    public  boolean animateAppearance(@NonNull RecyclerView.ViewHolder viewHolder, @Nullable ItemHolderInfo preLayoutInfo, @NonNull ItemHolderInfo postLayoutInfo) {
        return false;
    }

    @Override
    public  boolean animatePersistence(@NonNull RecyclerView.ViewHolder viewHolder, @NonNull ItemHolderInfo preLayoutInfo, @NonNull ItemHolderInfo postLayoutInfo) {
        return false;
    }

    @Override
    public  boolean animateChange(@NonNull RecyclerView.ViewHolder oldHolder, @NonNull RecyclerView.ViewHolder newHolder, @NonNull ItemHolderInfo preLayoutInfo, @NonNull ItemHolderInfo postLayoutInfo) { …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

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

通过指针将结构传递给函数

我正在使用Win32 API和_beginthreadex调用以下列方式运行线程:

struct StructItem
{
   std::string title;
   int amount;
};

StructItem structItems[33];
unsigned int id;
HANDLE thread = (HANDLE)_beginthreadex(NULL, 0, my_thread, (void*)structItems, 0, &id);
Run Code Online (Sandbox Code Playgroud)

这是我的主题:

unsigned int __stdcall my_thread(void *p)
{
    for (int i = 0; i < 20; i++)
    {           
        // todo: print struct.title
        Sleep(1000);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

据我所知,*p是指向我的结构列表的指针,因为我将它们传递给_beginthreadex调用中的第4个参数,但我无法理解如何转换*p以便我可以访问数组线程内的结构?

c++ multithreading

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