Android でプログラムで TextView を LinearLayout に追加する
Android 開発では、多くの場合、で定義されたレイアウトにビューを動的に追加する必要があります。 XML ファイル。この記事では、コードで事前定義された LinearLayout に TextView を追加するプロセスについて説明します。
問題:
ユーザーが、で定義された LinearLayout に TextView を追加しようとしました。次のコードを使用した XML:
<code class="xml">View linearLayout = findViewById(R.id.info); TextView valueTV = new TextView(this); valueTV.setText("hallo hallo"); valueTV.setId(5); valueTV.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); ((LinearLayout) linearLayout).addView(valueTV);</code>
ただし、このコードでは ClassCastException 例外が発生しました:
java.lang.ClassCastException: android.widget.TextView
解決策:
エラーこれは、linearLayout 変数の不正なキャストが原因で発生しました。 LinearLayout にアクセスするには、LinearLayout として明示的にキャストする必要があります。
<code class="xml">LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info); ... linearLayout.addView(valueTV);</code>
さらに、LayoutParams の代わりに LinearLayout.LayoutParams を使用して LayoutParams インスタンスを作成する必要があります。
修正コード:
<code class="xml">LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info); TextView valueTV = new TextView(this); valueTV.setText("hallo hallo"); valueTV.setId(5); valueTV.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); linearLayout.addView(valueTV);</code>
これらの変更を行うことで、TextView が LinearLayout に正常に追加されます。
以上がAndroid でプログラムによって TextView を LinearLayout に正しく追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。