1

カスタム TextView を作成しましたが、これらの TextView を EditText の下などの特定の位置に動的に追加したいと考えています。誰かがこれを行う方法を教えてもらえますか? カスタム textView を XML ではなく Java を介して動的に追加したいのですが、これに addView() を使用するにはどうすればよいですか? ここに画像の説明を入力

XML の一部は (私の XML ファイルのサイズが非常に大きいため):

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainStaffScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

 <!-- buttons,spinners,edittexts etc-->

 <Button
   android:id="@+id/specialisationStaffSpinner"
   style="?android:attr/spinnerStyle"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
   android:layout_marginTop="5dp"
   android:gravity="left|center_vertical"
   android:text="@string/names" />

 <!-- here i want to add my custom view-->

 </LinearLayout>
 </ScrollView>
4

6 に答える 6

3
  • カスタムテキストビューを追加したい場所に空のレイアウトビューを置きます
  • このレイアウトを ID でアクティビティに取得します
  • xmlで定義した空のレイアウトにカスタムテキストビューを追加します
于 2013-07-02T09:05:08.793 に答える
1

カスタム TextView を挿入する場所に空の LinearLayout を追加し、それを Java コードで参照してから、LinearLayout で addView() を使用できます。幸運を!:)

于 2013-07-02T09:08:59.680 に答える
0

相対レイアウトを親として使用すると、レイアウト パラメータを作成し、addRule 関数を使用して、必要なものを達成することができます。

このような

RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.BELOW, ButtonId);

        adsLayout.setLayoutParams(lp);
于 2013-07-02T09:04:14.047 に答える
0

最初に編集テキストを削除し、コード内の参照を見つけて更新し、その可視性を View.VISIBLE に設定するだけです

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainStaffScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

 <!-- buttons,spinners,edittexts etc-->

 <Button
   android:id="@+id/specialisationStaffSpinner"
   style="?android:attr/spinnerStyle"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
   android:layout_marginTop="5dp"
   android:gravity="left|center_vertical"
   android:text="@string/names" />

  <View
   android:visiblity="gone"
  android:id="+id/customView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   </View>


 </LinearLayout>
 </ScrollView>
于 2014-02-11T21:45:19.630 に答える
0

RelativeLayout を使用している場合、これは 3 ステップで簡単に実行できます。

  1. 上部と下部の両方のボタンに有効な ID があることを確認してください。

  2. RelativeLayout.LayoutParams を使用して場所を初期化し、指定します。

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.BELOW, topButton.getId()); params.addRule(RelativeLayout.ABOVE, bottomButton.getId());

3.ビューを追加します。

targetContainer.addView(customTextView, params);

ただし、RelativeLayout がないと難しくなります。

于 2013-07-02T09:07:18.930 に答える
0

この方法を試してください

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylayout)
TextView txt1 = new TextView(this, R.drawable.customexml);
linearLayout.addView(txt1);
于 2013-07-02T09:08:01.173 に答える