私のAndroidアプリケーションでは、動的に1つの TableRowを作成し、このtableRowに1つのtextViewと1つのeditTextViewを挿入します。
スピナーであるもう1つのファイルがあります。スピナーでの選択に応じて、このTableRowは作成または削除されます。
ここでは、レイアウトからフィールドを削除する方法について説明していますが、問題はビューを取得する方法です。
ここに私のコードはあります:
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v,
int pos, long id) {
if (pos > 1) {
tableRowName = new TableRow(this);
tableRowName.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
textViewName = new TextView(this);
textViewName.setText("Name*");
textViewName.setTextColor(Color.WHITE);
textViewName.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
editTextPersonName = new EditText(this);
editTextPersonName.setHint("Name");
editTextPersonName.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
tableRowName.addView(textViewName);
tableRowName.addView(editTextPersonName);
tableLayout.addView(tableRowName, new TableLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
} else {
tableRowName.removeView((View) v.getParent());
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Toast.makeText(getApplicationContext(),
"onNothingSelected() method is called by Stage Spinner",
Toast.LENGTH_LONG).show();
}
});
このコードはtableRowを作成できますが、このtableRowを削除することはできません。