1

私はアンドロイドを始めたばかりで、ここに投稿する前にこの答えを得るために以下の質問を試みました:

Android - 実行時にレイアウトをメイン レイアウトに追加する

プログラムでボタンをレイアウトに追加する

各子の位置を取得して LinearLayout に子を動的に追加する

そして、私はまだ線形レイアウトにボタンを追加することができません:(

以下はアクティビティのコードです。どこが間違っているか教えてください。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout layout = (LinearLayout) View.inflate(this, R.layout.activity_main, null);

        Button btn = new Button(this);
        btn.setId(123);
        btn.setText("Welcome to WI FI World");
        layout.addView(btn);
    }

xml は次のようになります。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

</LinearLayout>
4

3 に答える 3

2

レイアウトに ID を割り当ててから、レイアウトにボタンを追加してみてください。

これらの 2 つのレイアウトは同じではないことは確かなので、実際には表示されないレイアウトにボタンを追加していることになります。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LinearLayout layout = (LinearLayout) findViewById(R.id.lnr_main);

    Button btn = new Button(this);
    btn.setId(123);
    btn.setText("Welcome to WI FI World");
    layout.addView(btn);
}

レイアウトに ID が割り当てられている場合

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

</LinearLayout>
于 2012-09-03T18:15:24.590 に答える
1

linearLayout に ID を指定します。

次に、コードで

LinearLayout layout = (LinearLayout)findViewById(R.id.given_id);

残りは同じにしておいてください。うまくいくはずです。

于 2012-09-03T18:13:23.397 に答える
1

XML で LinearLayout の ID を取得し、Java コードで XML の LinearLayout の ID を使用します。

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

</LinearLayout>

onCreate() で:

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

 //Select widgets
 linear.addView()
于 2012-09-03T18:13:47.830 に答える