2013-06-25 48 views
-4

我有一個ArrayList的問題。我在一個類中聲明ArrayList。我將它填充到OnCreate方法中。在onCreate方法我調用一個函數,該函數訪問I到ArrayList裏面,但它是空的....這是starnge:可見性ArrayList裏面的功能

public class List_themeActivity extends Activity{ 

    String[] array ; 
    ArrayList <String>bdd_checked = new ArrayList<String>(); 

    private SQLiteDatabase bdd; 
    private ListView listView_listebase; 

    ListView msgList; 
    ArrayList<MessageDetails> details; 
    AdapterView.AdapterContextMenuInfo info; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.list_theme); 

     List<String> bdd_checked = readList (this, "animal");          

     initDB("LSPCC4.db"); 
     [...] 
    } 
} 

protected void initDB(String BD_NAME){ 
    int lg_bdd_checked=0; 
    lg_bdd_checked=this.bdd_checked.size(); 
} 

有人能幫助我嗎? thx

編輯: 對不起iniDB()ArrayList是空的。

由於maqjav,問題就解決了,我已經做到了這一點:

前:

List<String> bdd_checked = readList (this, "animal"); 

後:

bdd_checked = (ArrayList<String>) readList (this, "animal"); 

,我已經鑄造由於readList( ):

public static List readList(Context context,String prefix) {01 SharedPreferences prefs = context.getSharedPreferences(「YourApp」,Context.MODE_PRIVATE);

int size = prefs.getInt(prefix+"_size", 0); 

List<String> data = new ArrayList<String>(size); 
for(int i=0; i<size; i++) 
    data.add(prefs.getString(prefix+"_"+i, null)); 

return data; 

}

+0

它在哪裏是空的?在'initDB()'?並向我們​​展示'readList()'方法的代碼。 –

+0

您是否確認readList是否返回正確的值? – blganesh101

回答

3

你正在創建2周不同的ArrayList:

這裏(在你的類本地):

ArrayList <String> bdd_checked = new ArrayList<String>(); 

和這裏(當地在你的函數的onCreate):

List<String> bdd_checked = readList (this, "animal") 

修改s第二行到:

bdd_checked = readList (this, "animal")