Java 在一个具有不同项数的适配器中结合使用JSON和Reformation2

Java 在一个具有不同项数的适配器中结合使用JSON和Reformation2,java,android,json,retrofit2,Java,Android,Json,Retrofit2,我试图从RESTAPI获取一些数据,但我遇到了一个问题,因为我有一些具有不同项数的对象 例如: [{7 items}, {7 items}, {6 items}...{1 item}] 它们具有相同的键,但问题是在某些对象中,可能缺少一个或多个参数 我的应用程序开始运行,但当我尝试向下滚动时,它崩溃了。我已收到此错误: Attempt to read from field 'android.widget.TextView com.example.covidapp.covidAdapter$Vi

我试图从RESTAPI获取一些数据,但我遇到了一个问题,因为我有一些具有不同项数的对象

例如:

[{7 items}, {7 items}, {6 items}...{1 item}]
它们具有相同的键,但问题是在某些对象中,可能缺少一个或多个参数

我的应用程序开始运行,但当我尝试向下滚动时,它崩溃了。我已收到此错误:

Attempt to read from field 'android.widget.TextView com.example.covidapp.covidAdapter$ViewHolder.tv_activeCases' on a null object reference. 
这是我的
main活动
列表视图

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";
    private ListView listView;
    private covidAdapter covidAdapter;
    private CovidApi covidApi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.list_view_main);

        Gson gson = new GsonBuilder().serializeNulls().create();

        Retrofit retrofit = new Retrofit.Builder().baseUrl("https://covid-19-tracking.p.rapidapi.com/")
                .addConverterFactory(GsonConverterFactory.create(gson)).build();

        covidApi = retrofit.create(CovidApi.class);

        Call<List<covid>> call = covidApi.getInfo();

            call.enqueue(new Callback<List<covid>>() {

            @Override
            public void onResponse(Call<List<covid>> call, Response<List<covid>> response) {

                if (!response.isSuccessful()){
                    return;
                }

                List<covid> covids = response.body();


                covidAdapter = new covidAdapter((ArrayList<covid>) covids, getApplicationContext());
                listView.setAdapter(covidAdapter);

            }

            @Override
            public void onFailure(Call<List<covid>> call, Throwable t) {
                Toast.makeText(MainActivity.this,t.getMessage(),Toast.LENGTH_LONG).show();
            }
        });
    }
}

如果有任何帮助,我将不胜感激。

存储支架,以便在再次调用
getView()
时可以检索:

convertView.setTag(holder) 

你好,罗伯特。代码正在创建一个持有者,但它似乎没有存储它。它需要调用setTag。哦,是的。。。。非常感谢你!没问题,很乐意帮忙:)
convertView.setTag(holder)