1

私の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を削除することはできません。

4

2 に答える 2

1

ビューをレイアウトxmlにすでに追加してから、可視性をGONEまたはVISIBLEに動的に設定することをお勧めします。

于 2012-12-18T12:54:30.660 に答える
0

ビューにタグを設定し、v.setTag("my textView"); それを見つけたいときに使用するfindViewByTag("my textView");

于 2012-12-18T12:51:23.547 に答える