Android:删除动态创建的字段

时间:2012-12-18 12:48:56

标签: android android-view android-spinner

在我的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。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

使用v.setTag("my textView");将标记设置为视图 然后当你想要找到它时使用findViewByTag("my textView");