【发布时间】:2011-11-21 09:36:55
【问题描述】:
我想制作一个显示联系人列表(姓名、姓氏)的简单应用。我的代码:
package lista.android;
import java.util.*;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.*;
class Contact{
String nume;
String prenume;
Contact(String nume, String prenume){
this.nume=nume;
this.prenume=prenume;
}
public String toString(){
return prenume +" "+ nume;
}
}
public class Lista1Activity extends ListActivity {
/** Called when the activity is first created. */
ArrayList <Contact> lista;
ArrayAdapter <Contact> adaptor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(adaptor);
lista=new ArrayList<Contact>();
adaptor=new ArrayAdapter<Contact>(this, R.id.element, lista);
adaugaContact("Florian", "Iancu");
adaugaContact("Ioana", "Constantina");
}
public void adaugaContact(String nume, String prenume){
lista.add(new Contact(nume, prenume));
adaptor.notifyDataSetChanged();
}
}
在 XML 中,我有一个 LinearLayout 和一个 TextView 这是列表元素。当我运行它时,模拟器说"Sorry, the application [...] has stopped unexpectedly. Please try again." LogCat 告诉我我必须有一个ListView,它的id 是android.R.id.lista。如果我在 XML 文件中创建一个随机的 ListView 字段并给它“lista” id,它仍然不起作用。如何从 XML 调用 ListView 以匹配我的 Java 代码中的某些内容?换句话说,我知道我错了,但我在哪里以及如何解决它?
【问题讨论】:
-
您尝试先设置列表适配器,然后再创建它。你不觉得这是错的吗!
-
我认为你需要先了解创建列表视图的概念。