1

XML から既存のレイアウトを読み込んで動的にボタンと円を作成しようとしています。それらを XML に含めることができない理由は、円を動的に作成することが目的であるためです。実際には、次のコードは作りたい。

これを行う方法 (レイアウトの追加) が間違っていることはわかっていますが、多くのインターネット コンテンツを読んだ後、助けを求めているため、自分で行うことができませんでした。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_etest);
    LayoutInflater inflater;
    inflater = this.getSystemService
    (Context.LAYOUT_INFLATER_SERVICE);

    LinearLayout layout = (LinearLayout)                             
    inflater.inflate(R.layout.activity_etest ,
    null);
    LinearLayout viewGroup = layout;

    Button b1 = new Button(this); 
    b1.setText("test"); 
    viewGroup.addView(b1); 
    viewGroup.addView(new Circle(this));

    }

}

そして、View とそのメソッド onDraw() から拡張される私のクラス Circle は、次のもので構成されます。

  ... onDraw(){

  canvas.drawCircle(x, y, radius, paint);

   }

drawCircle のパラメーターは、この質問には関係ありません。私はそれらを他の場所で定義しました。

XML も追加します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

    <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Button"
    android:id="@+id/button12"
    android:layout_gravity="center_horizontal" />
 </LinearLayout>
4

1 に答える 1

0

linearlayoutあなたのようなビューグループを1つ作成し、xmlそれを使用しinstanceて動的ビューを追加します。

activity_etest.xml

   <?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/viewg" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

アクティビティ

setContentView(R.layout.activity_etest);
Linearlayout viewgroup = (LinearLayout)findViewById(R.id.viewg);

 Button b1 = new Button(this); 
    b1.setText("test"); 
    viewGroup.addView(b1); 
    viewGroup.addView(new Circle(this));
于 2016-06-01T11:18:56.820 に答える