我正在尝试将一个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;
}
答案 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)
显然,您使用Runnable
(run()
方法)创建适配器,这就是this
引用Runnable
而不是Context
的原因。尝试使用YourActivity.this
代替this
。