2

xml ファイルで作成した TextView があるとします。このビューのレイアウト パラメータを、プログラムですべて書き直すのではなく、プログラムでコピーできるかどうか疑問に思っています。または、新しい TextView を作成して元のものと同じにしてから、追加される新しいビューにアタッチするだけでよい場合。

後者を試したところ、次のようなエラーが発生しました。

08-09 22:04:55.253: E/AndroidRuntime(1848): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

しかし、このエラーは、最初のビューからそれらを削除しようとした後でも持続します。何か案は?それとも、これは完全に実行不可能でばかげているだけですか。

4

2 に答える 2

0

View同じ xml から いつでも新しいものを膨らませることができます。Adapterクラスは常にこれを行います。たとえば、ListViews では、同じ xml リソースからの行である場合、アダプターはすべてを膨張させます。

于 2013-08-09T22:18:07.150 に答える
0

もちろん、そのスペキュラー TextView のレイアウト パラメータを取得できます。

TextView myTextView=(TextView) findViewById(<your-TextView's-id>);
ViewGroup.LayoutParams layPar=myTextView.getLayoutParams();

これから別のものをコピーして、このように新しいビューに追加できます。

newView.addView(newTextView);
于 2013-08-09T23:34:54.323 に答える