与えられた行番号と列番号を持つ数値表を生成しようとしています。このプログラムは、ユーザーから2つのパラメータを受け取り、与えられたパラメータでテーブルの行と列を作成します。各セルの乱数値は1から100の間です。 私のXMLには、自分のパラメータになる2つの異なるEditTextビューがあります。 「作成」、「計算」、「リセット」、「終了」の4つのボタンがあります。ユーザーが「作成」ボタンをクリックすると、与えられた行と列の値を持つテーブルが生成されます。したがって、XMLファイルではなく、Javaファイルからテーブルを作成する必要があります。Androidテーブルをプログラムで作成する
これは、これまでの私のコードです:
public class MainActivity extends AppCompatActivity {
private Button btnCreate, btnCalculate, btnReset, btnExit;
private EditText txtColumn, txtRow;
private LinearLayout linLayout;
private TableLayout table;
private TextView txtResult;
private Random random;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnCreate = (Button) findViewById(R.id.btnCreate);
btnCalculate = (Button) findViewById(R.id.btnCalculate);
btnReset = (Button) findViewById(R.id.btnReset);
btnExit = (Button) findViewById(R.id.btnExit);
txtColumn = (EditText) findViewById(R.id.txtColumn);
txtRow = (EditText) findViewById(R.id.txtRow);
txtResult = (TextView) findViewById(R.id.txtResult);
txtColumn.requestFocus();
random = new Random();
TableLayout table = new TableLayout(this);
btnCalculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
btnCreate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
table.setLayoutParams(new TableLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
table.setShrinkAllColumns(true);
table.setStretchAllColumns(true);
int columnNumber = Integer.parseInt(txtColumn.getText().toString());
int rowNumber = Integer.parseInt(txtRow.getText().toString());
for(int i=0; i<rowNumber; i++) {
TableRow row = new TableRow();
for(int j=0; i<columnNumber; i++) {
int value = random.nextInt(100) + 1;
TextView tv = new TextView();
tv.setText(String.valueOf(value));
row.addView(tv);
}
table.addView(row);
}
}
});
btnExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
System.exit(0);
}
});
btnReset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
txtColumn.setText(null);
txtRow.setText(null);
txtResult.setText(null);
}
});
}
}
私は「のための」ループでエラーを取得しています。それは、 "TableRow"はコンテキストパラメータを内部で取得しなければならないと言います。しかし、私は本当にそれがどんな種類のパラメータを必要としているのか理解できませんでした。私はテーブルの作成をプログラムで検索しようとしましたが、これまでのところ運はありません。このエラーを修正するにはどうすればいいですか?
提供したコードは機能しましたが、アプリケーションを実行すると何も起こりませんでした。私はパラメータを与えましたが、テーブルは作成されません。 – rawsly
これは、どのビューでもテーブルビューを追加していないため、テーブルを作成してxmlの任意のビューにそのテーブルを追加しないためです – Munir
ありがとうございました!私は自分のXML内に新しいLinearLayoutを作成し、それに固有のIDを与えました。次に、このレイアウト内にテーブルを追加しました。さて、私はテーブルスタイリングに取り組まなければなりません。あなたの答えをありがとう! – rawsly