1

ちょっと助けが必要です........私の意図は、ボタンだけを含むアプリを開発することです...そしてそれをクリックすると、画面上に動的に別のボタンを作成する必要があります.......

これが私のコードです...

        public void onClick(View v) {
            // TODO Auto-generated method stub
            Button bee=new Button(getBaseContext());
            bee.setText("hello:");
             RelativeLayout a;
            a=(RelativeLayout)findViewById(R.layout.activity_main);
    a.addView(bee,new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        }
    });

このコードにはエラーはありませんが、実行すると「残念ながら「myapplication」が停止しました」と表示されます。

plsはみんなを助けます..(私の唯一の目的はウィジェットを動的に作成することです、それでdisプログラムを試しました)。他に何か提案があればplsはndコメントを投稿します

4

5 に答える 5

1
 a=(RelativeLayout)findViewById(R.layout.activity_main);

activity_main はレイアウトであり、RelativeLayout ウィジェットではありません!

あなたが使用する必要があります

 a=(RelativeLayout)findViewById(R.id.my_relative_layout);

スタック トレース (logcat) を投稿して、より適切で迅速な回答を得られるようにしてください。

于 2012-11-02T09:50:58.990 に答える
0

レイアウトではなくIDを見つけています

この行を変更します。

a=(RelativeLayout)findViewById(R.id.activity_main); 
于 2012-11-02T09:53:31.747 に答える
0

このコードを試してみてください。パラメータを適切に設定していないという理由だけで問題が発生していると思うので、このコードで確認してください-

 LinearLayout container = (LinearLayout)findViewById(R.id.container);

    Button btn = new Button(this);
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.MATCH_PARENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT);
    btn.setLayoutParams(lp);

    container.addView(btn);
于 2012-11-02T09:54:45.553 に答える
0

存在しないレイアウトを「見つけよう」としています! RealtiveLayout有効な ID で を定義したことを確認してから実行してください

a=(RelativeLayout)findViewById(R.id.valid_layout_id);

それ以外の

a=(RelativeLayout)findViewById(R.layout.activity_main);

于 2012-11-02T09:52:23.457 に答える
0

これを試して。

RelativeLayout rLayout = (RelativeLayout )findViewById(R.id.relativeLayout); // Here this should be id of your relative layout.
Button btn = new Button(this);
rLayout.addView(btn);
于 2012-11-02T09:52:27.857 に答える