我正在关注创建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的行上收到此错误消息。它说:
奇怪的是,即使出现此错误消息,我也能够在我的模拟器上成功编译和运行应用程序。一切都按预期工作。但我仍然想知道如何解决此错误消息,因为它可能会让我遇到麻烦。
顺便使用Android Studio 3.1.2。
答案 0 :(得分:0)
发现问题所在。我跟随的教程有一个启动模板项目。当我使用最新的Android Studio和SDK版本打开它时,AS提示我更新项目的build.gradle中的版本。所以我按照建议继续进行更新。这似乎弄乱了一些事情并导致我在原帖中谈论的错误信息。
我刚刚重新加载了模板项目,这次没有更新build.gradle中的版本,这使得错误消息消失了。我想我们总是不能依赖build.gradle更新建议:)