ArrayList到ArrayAdapter

时间:2012-07-30 16:40:35

标签: android arrays listview

我正在尝试将一个arraylist方法放入arrayadapter但我无法这样做。 我得到了The constructor ArrayAdapter<String>(new Runnable(){}, int, ArrayList<RetrieveInternet>) is undefined

ArrayAdapter

            ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getPackages());

Arraylist方法:

private ArrayList<RetrieveInternet> getPackages() {
    ArrayList<RetrieveInternet> apps = getPermissions(true); /* false = no system packages */
    final int max = apps.size();
    for (int i=0; i<max; i++) {
        apps.get(i);
        Log.e("TAG", apps.get(i).toString());
    }
    return apps;
}

2 个答案:

答案 0 :(得分:2)

ArrayAdapter构造函数的第一个参数应该是Context而不是Runnable。您可能在某些Runnable内设置适配器,因此您无法使用this引用,因为它指向该Runnable实例。你应该改变这一行:

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getPackages());

进入这个:

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(YourActivity.this, android.R.layout.simple_list_item_1, getPackages());

主要区别在于第一个参数 - YourActivity.this,它是您在其中设置适配器的活动的参考。

答案 1 :(得分:0)

显然,您使用Runnablerun()方法)创建适配器,这就是this引用Runnable而不是Context的原因。尝试使用YourActivity.this代替this