2013-03-28 48 views
2

我正在爲android編碼一個應用程序。我如何從我的活動傳遞一個int數組到我的視圖類?我搜索了但沒有找到任何似乎回答我的問題。我有此類:將一個數組從一個活動傳遞到一個視圖Android

公共類ConvertToGrid延伸活動{...}

(使用意圖)這需要從主活動的佈局中的用戶的輸入,並將其轉換成一個整數數組: int[] binary = {...}其中有64個值。我如何得到它變成這樣:

公共類DrawGrid擴展視圖{...}

我天真地試圖意圖,但除非我做錯了,它好像說錯了爲觀點做!另外,我認爲我不需要像在做我的活動一樣在聲明中聲明我的視圖?

回答

0

創建,它具有通常的參數加上int數組,例如一個構造函數:

public class DrawGrid extends View { 

    private int[] intArray; 

    public DrawGrid(Context context,int[] intArray) { 
     super(context); 
     // TODO Auto-generated constructor stub 
      this.intArray = intArray; 
    } 

    public DrawGrid(Context context, AttributeSet attrs, int defStyle,int[] intArray) { 
     super(context, attrs, defStyle); 
     // TODO Auto-generated constructor stub 
      this.intArray = intArray; 
    } 

    public DrawGrid(Context context, AttributeSet attrs,int[] intArray) { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 
      this.intArray = intArray; 
    } 


} 
+0

這對我來說似乎是個好主意。我意識到現在我的問題有多基本。 – David

+0

快速跟進,我該如何使用已通過的數組?我想在後面的代碼中引用它,但它抱怨說它不知道'intArray'是什麼。 – David

+0

@David請再次看到我的答案。在你的類中創建一個字段並將其設置在構造函數中就足夠了。 – hasanghaforian

1

試試這個

public class ConvertToGrid extends Activity{. 

Public int[] binary = {...} 

public class DrawGrid extends View{...} 

..} 
+0

這可能是更好的封裝視圖中的數據(如果使用的是數據)比活動。這樣您就可以輕鬆地在不同的活動中重複使用它。 – runor49

+0

感謝runor,這是一個很好的觀點。 – David

0
public class DrawGrid extends View{ 
int[] binary; 

public void setBinaryData(int[] binary) 
{ 
    this.binary = binary 
} 

} 
+0

這是否只是使我的項目中的所有類公開可用int數組?再次,另一個非常簡單的選擇。 – David

0

剛剛創建具有PARAM INT []

構造
public DrawGrid(int[] binaries) 
{ 
    // constructor 
} 
相關問題