Android 使用ArrayList填充动态创建的ListView

Android 使用ArrayList填充动态创建的ListView,android,arraylist,android-listview,listactivity,Android,Arraylist,Android Listview,Listactivity,我试图用从另一个函数获取的ArrayList填充动态创建的ListView。我得到一个错误“构造函数ArrayAdapter(ShowRecords、ListView、ArrayList)未定义”。这是我的列表活动的代码: public class ShowRecords extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreat

我试图用从另一个函数获取的
ArrayList
填充动态创建的
ListView
。我得到一个错误
“构造函数ArrayAdapter(ShowRecords、ListView、ArrayList)未定义”
。这是我的
列表活动的代码

public class ShowRecords extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);

        DatabaseHandler db = new DatabaseHandler(this);
        ArrayList<String> records = db.getRecords();

        ListView lv = new ListView(this);
        this.setListAdapter(new ArrayAdapter<String>(this, lv, records));
    } 

}

如何修复此问题?

以下是可用构造函数的列表:

[Public Method] [Constructor] ArrayAdapter(Context, int) : void
[Public Method] [Constructor] ArrayAdapter(Context, int, int) : void
[Public Method] [Constructor] ArrayAdapter(Context, int, Object[]) : void
[Public Method] [Constructor] ArrayAdapter(Context, int, List) : void
[Public Method] [Constructor] ArrayAdapter(Context, int, int, List) : void
[Public Method] [Constructor] ArrayAdapter(Context, int, int, Object[]) : void
您当然要使用此选项:

[Public Method] [Constructor] ArrayAdapter(Context, int, Object[]) : void
这意味着:

this.setListAdapter(new ArrayAdapter<String>(this, R.id.whateveridyouchoose, records));
this.setListAdapter(新的ArrayAdapter(this,R.id.whateveridyouchoose,records));

因为您使用的是ListActivity,所以不需要声明listview

试试这个,这个应该有用

public class ShowRecords extends ListActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout ll = new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);

    DatabaseHandler db = new DatabaseHandler(this);
    ArrayList<String> records = db.getRecords();
    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, records));
} 

}
public类ShowRecords扩展了ListActivity{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
LinearLayout ll=新的LinearLayout(本);
ll.设置方向(线性布局、垂直);
DatabaseHandler db=新的DatabaseHandler(此);
ArrayList records=db.getRecords();
setListAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,记录));
} 
}

为什么要从数据库中创建ArrayList,而不仅仅是使用SimpleCorsOrAdapter?因为这是我第一次尝试这个方法,但我不完全确定我在做什么。您可以只使用第12行下面的部分。
public class ShowRecords extends ListActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout ll = new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);

    DatabaseHandler db = new DatabaseHandler(this);
    ArrayList<String> records = db.getRecords();
    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, records));
} 

}