2012-07-30 32 views
1

我試圖把一個ArrayList方法放入一個arrayadapter,但我無法這樣做。 我越來越The constructor ArrayAdapter<String>(new Runnable(){}, int, ArrayList<RetrieveInternet>) is undefinedArrayList到ArrayAdapter

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

方法參數與聲明的參數不匹配。這些必須匹配。 – jsmith 2012-07-30 17:03:34

回答

0

顯然你是在一個Runnable(在run()方法)創建的適配器,這就是爲什麼thisRunnable,而不是Context。嘗試使用YourActivity.this而不是this

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這是參考你的活動,你要設置你的適配器。

相關問題