使用 ArrayAdapter 时无法解析构造函数
Cannot resolve constructor when using ArrayAdapter
我在尝试组装 ArrayAdapter 时遇到了麻烦。我有一个构造函数 Person,它用于将人们放在一个列表中。然后我将一个类型为 Person 的 ArrayList 放在一起以制作一个可读列表。
然后我将一个 ArrayAdapter 放在一起,以便可以在 ListView 中看到该列表,但我的代码不断得到 "Cannot resolve constructor"。
我已经在这个网站上尝试了无数可能的解决方案,包括尝试使用 getActivity() 或这个来代替 PeopleActivity.this,但我就是无法编译我的代码。我也试过在 ArrayAdapter 中引用我的构造函数 class,但这只是给我一个错误,它不是封闭的 class。
Person.class(构造函数)
import android.text.Editable;
public class Person {
public Person Person;
private Editable personName;
public Person(Editable a) {
personName = a;
}
public void setName(Editable personName){
this.personName = personName;
}
public Editable getName() {
return personName;
}
}
PeopleActivity - populateListView
ArrayList<Person> peoplelistv = new ArrayList<Person>();
...
private void populateListView() {
ListView list = (ListView) findViewById(R.id.peopleListView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(PeopleActivity.this, android.R.layout.simple_list_item_1, peoplelistv);
list.setAdapter(adapter);
}
大家有什么想法吗?
谢谢
您正在将 ArrayAdapter
声明为 ArrayAdapter<String>
。但是,您传递给构造函数的第三个参数既不是 String[]
也不是 List<String>
。如果您尝试将 ArrayList<Person>
包裹在 ArrayAdapter
中,它必须是 ArrayAdapter<Person>
,而不是 ArrayAdapter<String>
。
我在尝试组装 ArrayAdapter 时遇到了麻烦。我有一个构造函数 Person,它用于将人们放在一个列表中。然后我将一个类型为 Person 的 ArrayList 放在一起以制作一个可读列表。
然后我将一个 ArrayAdapter 放在一起,以便可以在 ListView 中看到该列表,但我的代码不断得到 "Cannot resolve constructor"。
我已经在这个网站上尝试了无数可能的解决方案,包括尝试使用 getActivity() 或这个来代替 PeopleActivity.this,但我就是无法编译我的代码。我也试过在 ArrayAdapter 中引用我的构造函数 class,但这只是给我一个错误,它不是封闭的 class。
Person.class(构造函数)
import android.text.Editable;
public class Person {
public Person Person;
private Editable personName;
public Person(Editable a) {
personName = a;
}
public void setName(Editable personName){
this.personName = personName;
}
public Editable getName() {
return personName;
}
}
PeopleActivity - populateListView
ArrayList<Person> peoplelistv = new ArrayList<Person>();
...
private void populateListView() {
ListView list = (ListView) findViewById(R.id.peopleListView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(PeopleActivity.this, android.R.layout.simple_list_item_1, peoplelistv);
list.setAdapter(adapter);
}
大家有什么想法吗?
谢谢
您正在将 ArrayAdapter
声明为 ArrayAdapter<String>
。但是,您传递给构造函数的第三个参数既不是 String[]
也不是 List<String>
。如果您尝试将 ArrayList<Person>
包裹在 ArrayAdapter
中,它必须是 ArrayAdapter<Person>
,而不是 ArrayAdapter<String>
。