在我实例化ArrayAdapter子类时获取错误消息

时间:2018-04-30 15:09:55

标签: java android

我正在关注创建ListView并使用ArrayAdapter子类使用自定义数据填充它的在线教程。 ListView项基本上包含2个TextView和一个ImageView。

这是我的自定义ArrayAdapter子类的片段及其构造函数代码:

public class WordAdapter extends ArrayAdapter<Word> {

    private static final String LOG_TAG = WordAdapter.class.getSimpleName();

    public WordAdapter(@NonNull Context context, @NonNull ArrayList<Word> objects) {
        super(context, 0, objects);
    }

....other overriden methods here...

}

然后我在我的Activity中实例化WordAdapter:

package com.example.android.miwok;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ListView;
import java.util.ArrayList;

    public class NumbersActivity extends AppCompatActivity {

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

        ArrayList<Word> words = new ArrayList<>();
        words.add(new Word("...", "...", R.drawable.number_one));
        words.add(new Word("...", "...", R.drawable.number_two));

        WordAdapter wordAdapter = new WordAdapter(this, words);
        ListView listView = (ListView)findViewById(R.id.list);
        listView.setAdapter(wordAdapter);
    }
}

现在我在我实例化WordAdapter的行上收到此错误消息。它说: enter image description here

奇怪的是,即使出现此错误消息,我也能够在我的模拟器上成功编译和运行应用程序。一切都按预期工作。但我仍然想知道如何解决此错误消息,因为它可能会让我遇到麻烦。

顺便使用Android Studio 3.1.2。

1 个答案:

答案 0 :(得分:0)

发现问题所在。我跟随的教程有一个启动模板项目。当我使用最新的Android Studio和SDK版本打开它时,AS提示我更新项目的build.gradle中的版本。所以我按照建议继续进行更新。这似乎弄乱了一些事情并导致我在原帖中谈论的错误信息。

我刚刚重新加载了模板项目,这次没有更新build.gradle中的版本,这使得错误消息消失了。我想我们总是不能依赖build.gradle更新建议:)