我正在制作一个Android应用程序作为一个项目,它从用户输入输入no。矩阵的行和列然后它动态创建文本框,以显示下一个意图中矩阵的行和列。现在我需要这些值进行进一步的计算,如反转,转置,加法,减法等。我需要这些值存储在2d数组中,以便我可以轻松使用它。请帮助,谢谢 这是我的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
int rows = getIntent().getIntExtra("rows",3);
int cols = getIntent().getIntExtra("cols",3);
matrix = (LinearLayout) findViewById(R.id.matrix);
matrix.removeAllViews();
List<EditText> allEds = new ArrayList<EditText>();//thisline
for (int a = 1; a <= rows; a++)
{
LinearLayout layout = new LinearLayout(Main2Activity.this);
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setLayoutParams(new LinearLayout.LayoutParams
(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT,1));
for (int b = 1; b <= cols; b++)
{
EditText text = new EditText(Main2Activity.this);
//text.setBackgroundColor(Color.GRAY);
allEds.add(text);//thisline
text.setHint("**");
text.setKeyListener(new DigitsKeyListener());
text.setHintTextColor(Color.BLACK);
int iD = 1;
//noinspection ResourceType
text.setId(iD);
text.setLayoutParams(new LinearLayout.LayoutParams
(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1));
//text.setText((j + 1) + " ");
text.setTextColor(Color.RED);
layout.addView(text);
}
matrix.addView(layout);
}
String[] strings = new String[allEds.size()];
for(int a=1; a <= allEds.size();a++)
{
for (int b = 1; b <= cols; b++)
{
strings[b] = allEds.get(b).getText().toString();
}
}
答案 0 :(得分:-1)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
int rows = getIntent().getIntExtra("rows",3);
int cols = getIntent().getIntExtra("cols",3);
matrix = (LinearLayout) findViewById(R.id.matrix);
matrix.removeAllViews();
//List<EditText> allEds = new ArrayList<EditText>();//thisline
//Now you have 2D array of
EditText editTextMatrix[][] = new EditText[rows][cols];
//for (int a = 1; a <= rows; a++)
for (int a = 0; a < rows; a++)
{
LinearLayout layout = new LinearLayout(Main2Activity.this);
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setLayoutParams(new LinearLayout.LayoutParams
(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT,1));
//for (int b = 1; b <= cols; b++)
for (int b = 0; b < cols; b++)
{
EditText text = new EditText(Main2Activity.this);
//text.setBackgroundColor(Color.GRAY);
// allEds.add(text);//thisline
editTextMatrix[a][b] = text;
text.setHint("**");
text.setKeyListener(new DigitsKeyListener());
text.setHintTextColor(Color.BLACK);
//Setting ID to editText is not compulsory as you are saving a reference in editTextMatrix[][]
//int iD = 1;
//noinspection ResourceType
//text.setId(iD);
text.setLayoutParams(new LinearLayout.LayoutParams
(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1));
//text.setText((j + 1) + " ");
text.setTextColor(Color.RED);
layout.addView(text);
}
matrix.addView(layout);
}
//Now you have 2D array of editTextMatrix
//Iterate editTextMatrix to get the values;