Android:删除动态创建的字段

Android:删除动态创建的字段,android,android-view,android-spinner,Android,Android View,Android Spinner,在我的android应用程序中,我动态创建了一个表格行,并在此表格行中插入一个textView和一个editTextView 还有一个字段是spinner。根据微调器上的选择,创建或删除此TableRow 他们提到如何从布局中删除字段,但问题是如何获得视图 我的代码是: spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSel

在我的android应用程序中,我动态创建了一个表格行,并在此表格行中插入一个textView和一个editTextView

还有一个字段是spinner。根据微调器上的选择,创建或删除此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();
        }
    });
spinner1.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图v、,
内部位置,长id){
如果(位置>1){
tableRowName=新的TableRow(此);
tableRowName.setLayoutParams(新的LayoutParams(LayoutParams.MATCH_父项,LayoutParams.WRAP_内容));
textViewName=新的TextView(此);
textViewName.setText(“名称*”);
textViewName.setTextColor(Color.WHITE);
textViewName.setLayoutParams(新的LayoutParams(LayoutParams.MATCH_父项,LayoutParams.WRAP_内容));
editTextPersonName=新的EditText(此);
editTextPersonName.setHint(“名称”);
editTextPersonName.setLayoutParams(新的LayoutParams(LayoutParams.MATCH_父项,LayoutParams.WRAP_内容));
tableRowName.addView(textViewName);
tableRowName.addView(editTextPersonName);
tableLayout.addView(tableRowName,新的tableLayout.LayoutParams(
LayoutParams.MATCH_父级,LayoutParams.MATCH_父级);
}否则{
tableRowName.removeView((视图)v.getParent());
}
}
@凌驾
未选择公共无效(AdapterView arg0){
Toast.makeText(getApplicationContext(),
“阶段微调器调用onNothingSelected()方法”,
Toast.LENGTH_LONG).show();
}
});

此代码可以创建tableRow,但不能删除此tableRow。

使用
v.setTag(“我的文本视图”)为视图设置标记

然后,当您想要查找它时,使用
findViewByTag(“我的文本视图”)

使用
v.setTag(“我的文本视图”)将标签设置为视图

然后,当您想要查找它时,使用
findViewByTag(“我的文本视图”)

您最好在布局xml中添加视图,然后将可见性设置为GONE或VISIBLE Dynamic

您最好将视图添加到布局xml中,然后将可见性设置为GONE或VISIBLE动态

如何设置标记、在何处设置标记以及何时需要调用findViewByTag。请简单解释一下。你问如何才能找到一个视图。当您创建它时,使用您想要的任何名称为它设置一个标记,当您必须再次找到它时,按它的标记搜索它。然后做任何你需要的事情(从父级移除/使其不可见),如何设置标记,在哪里设置标记,何时需要调用findViewByTag。请简单解释一下。你问如何才能找到一个视图。当您创建它时,使用您想要的任何名称为它设置一个标记,当您必须再次找到它时,按它的标记搜索它。然后做任何你需要的事情(从父级移除/使其不可见)