在我的Android应用程序中,我动态创建一个 TableRow ,并在此tableRow中插入一个textView和一个editTextView。
还有一个是旋转器。根据微调器上的选择,可以创建或删除TableRow。
Here他们提到了如何从布局中删除字段,但问题是如何获取视图。
我的代码是:
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。
答案 0 :(得分:1)
您最好在布局xml中添加视图,然后动态设置GONE或VISIBLE的可见性。
答案 1 :(得分:0)
使用v.setTag("my textView");
将标记设置为视图
然后当你想要找到它时使用findViewByTag("my textView");