2011-03-03 54 views
4

目前我有我的代码将用户输入放入一维ArrayList,但我想将它们放入一个二维ArrayList中,并遇到一些麻烦。Android:二维ArrayList帮助

这里是我的代码:

public class Game extends Activity implements OnClickListener { 
    private static final String TAG = "Matrix"; 
    static ArrayList<EditText> columnEditTexts; 




    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.setContentView(R.layout.matrix); 
     View doneButton = findViewById(R.id.done_button); 
     doneButton.setOnClickListener(this); 
     columnEditTexts = new ArrayList<EditText>(); 

     for(int i = 0; i < MatrixMultiply.h1; i++){ 
      TableLayout table = (TableLayout)findViewById(R.id.myTableLayout); 
      TableRow row = new TableRow(this); 
      EditText column = new EditText(this); 
      for(int j = 0; j < MatrixMultiply.w1; j++){ 
       table = (TableLayout)findViewById(R.id.myTableLayout); 
       column = new EditText(this); 
       column.setId(i); 
       row.addView(column); 
       columnEditTexts.add(column); 
      } 
      table.addView(row); 
     } 



    } 
+0

和到底什么是麻烦? – 2011-03-03 04:13:53

+0

现在它只将EditTexts放入单维数组中。我将如何将它们放入二维数组中? – Biggsy 2011-03-03 04:23:05

+0

您可以通过将这些数据存储在二维数组中来增加您希望实现的功能吗? – 2011-03-03 04:32:56

回答

9

那么你需要首先创建一个二维的ArrayList。为此,您需要创建ArrayList的ArrayList。

ArrayList<ArrayList<EditText>> arrayOfEditTexts = new ArrayList<ArrayList<EditText>>(); 

,那么你环路将成为东西沿着这些路线(假设我明白你正在尝试做的):

for(int i = 0; i < MatrixMultiply.h1; i++){ 
     columnEditTexts = new ArrayList<EditText>(); 
     TableLayout table = (TableLayout)findViewById(R.id.myTableLayout); 
     TableRow row = new TableRow(this); 
     EditText column = new EditText(this); 
     for(int j = 0; j < MatrixMultiply.w1; j++) {    
      column = new EditText(this); 
      column.setId(i); 
      row.addView(column); 
      columnEditTexts.add(column); 
     } 
     table.addView(row); 
     arrayOfEditTexts.add(columnEditTexts); 
    } 
+0

这很接近,但似乎不断添加相同的ArrayLists。对于2x3矩阵,我希望ArrayList为[1 2 3] [4 5 6]。 当前它存储为[1 2 3 4 5 6] [1 2 3 4 5 6] – Biggsy 2011-03-03 05:23:46

+0

然后你的for循环出现问题。 ArrayList的结构保持不变,问题在于如何填充它。 – 2011-03-03 19:46:24