【问题标题】:ArrayList into ArrayAdapterArrayList 转换为 ArrayAdapter
【发布时间】:2012-07-30 16:40:34
【问题描述】:

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

阵列适配器

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

数组列表方法:

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;
}

【问题讨论】:

  • 方法参数 与声明的参数 不匹配。这些必须匹配。

标签: android arrays listview


【解决方案1】:

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,它引用了您在其中设置适配器的活动。

【讨论】:

    【解决方案2】:

    显然,您是在Runnable(在run() 方法中)创建适配器,这就是为什么this 指的是Runnable,而不是Context。尝试使用YourActivity.this 而不是this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多