0

linearlayout を他のレイアウトに追加するメソッドを作成する方法を知りたいです。このメソッドをアクティビティで使用するときに、このメソッドがアクティビティ レイアウトの上に線形レイアウトを追加するメソッドを作成したいと考えています。どうやってやるの?

編集:私はそのようなことをします:

public class SecondActivity extends Activity {

    LinearLayout layout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_activity);

        layout = (LinearLayout) findViewById(R.id.lay);
        Button next = (Button) findViewById(R.id.nextActivity);
        layout.addView(addNewLinearLayout(getApplicationContext()));

        next.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SecondActivity.this, ThirdActivity.class);
                startActivity(intent);
            }
        });
    }
    private View addNewLinearLayout(Context context) {
        LinearLayout linearLayout = new LinearLayout(context);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        linearLayout.setLayoutParams(params);
        linearLayout.setBackgroundColor(getResources().getColor(R.color.black));
        // Do something else here on your linear layout or to customize your linear layout
        return linearLayout;
    }

}

これはxmlです:

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

        <Button
            android:id="@+id/nextActivity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" 
        android:layout_marginTop="100dp"
        />

</LinearLayout>

しかし、私のレイアウトは彼の色を変えていません。なんで?

4

4 に答える 4

2

このようなことを試してください:

private View _addNewLinearLayout(context) {
    LinearLayout linearLayout = new LinearLayout(context);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    linearLayout.setLayoutParams(params);
    // Do something else here on your linear layout or to customize your linear layout

    return linearLayout;
}

主に、これを次のように呼び出すことができます:

getView().addView(_addNewLinearLayout(context));
于 2013-02-06T08:00:22.327 に答える
1

このサンプル メソッドを使用します。必要に応じて、さらにパラメーターを追加できます。

public LinearLayout addLinearLayout(Context context) {
    LinearLayout newLayout = new LinearLayout(context);

    //Add stuffs here, like LayoutParams

    return newLayout;
}

yourLinearLayoutName.addView(addLinearLayout(yourClassName.this));
于 2013-02-06T08:00:29.073 に答える
1
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View detailView = inflater.inflate(R.layout.yourNewLayout, l_details, false);

ここで、l_details は、別のリニア レイアウトを追加するリニア レイアウトのインスタンスです。

于 2013-02-06T08:01:19.880 に答える
1

次のように、新しい LinearLayout を簡単に作成できます。

LinearLayout linLayout = new LinearLayout(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT);

そして、次のように設定します。

setContentView(linLayout, layoutParams);
于 2013-02-06T07:59:29.860 に答える