2012-08-30 31 views
0

我是android編程中的新手。 這裏是我的問題android編程中的數組

我試過的onCreate之前聲明數組()方法類似

int[] userselected; 

請注意,我想用這個數組來存儲按鈕用戶的IDS一壓。 然後我試圖找不到。這個陣列元素與

int noOfElements = userselected.length; 

哪個遊戲我錯了。 然後,我改變聲明

int[] userselected = {}; 

它的工作,但是當我試圖把一個id這個數組中的代碼

userselected[1] = R.id.textview1; 

再次給了我一個錯誤。 我也試過聲明數組作爲

int[] userselected = new int[4]; 

但後來,當我試圖找到多少元素已經被存儲, userselected.length

總是給數4

請告訴我,我怎麼能得到我想要的

+4

然後使用'List'。它是動態的 – Aprian

回答

5

你需要使用ArrayList。它會給你一個更靈活的結構給你的情況。

ArrayList<Integer> userselected = new ArrayList<Integer>(); 
userselected.add(R.id.textview1); //To add id. 
int noOfElement = userselected.size(); //to get size 
+2

這個代碼示例中的問題是什麼?我要求downvoters ......先讀規則做downvote然後繼續。不要在這裏顯示你的嫉妒行爲。 –

+0

是用戶詢問ArrayList的任何地方? OP可以建議你可以使用ArrayList給出爲什麼要使用它。 –

+0

這是一個很好的理由downvote,但是當你給downvote你應該清楚你的思想OP。我對嗎? –

0

Java原始陣列,比如int[],在長度上恆定,並且不能包含比其初始長度以上。如果你需要一個可以改變大小的數組,你需要使用fx。一個List實現。我建議你在開始開發Android之前閱讀基本的Java,從長遠來看這會爲你節省很多時間。

+0

你是對的,但這種方式學習也不錯,我認爲 –

0

聲明爲整型數組,然後添加到您的代碼

Integer a=0; 
for (int i=0;i>userselected.length;i++) 
{ 
    if(userselected[i]!=null) 
    { 
     a++; 
    } 
} 

然後a會給你個數你需要:)乾杯:)

+0

其給定運算符!=未定義爲int類型的null。 此外你的循環是不正確的,我糾正了 –

0

數組是固定大小。所以,當你聲明此數組

int[] userselected = new int[4]

要創建與爲4的固定大小的數組索引是從零開始的陣列,使得其從[0]到[3]。我建議你使用ArrayList對象像頂端回答狀態

,當你這樣做:

int[] userselected = {};

它是與此相同:

int[] userselected = new int[0]; // empty

and you got an error from this:

int[] userselected;

,因爲你沒有在內存中分配任何空間

+0

你正確地解釋我錯在哪裏.... thanx你的時間 –