2012-01-21 2 views
1

から別のLinearLayoutにのLinearLayoutを追加する私はmain.xmlでのLinearLayoutを持っているアンドロイド:どのようにコード

基本的に
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/item_bg" 
    android:gravity="right" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/icon" /> 

    <CheckBox 
     android:id="@+id/checkBox1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginRight="20dp" 
     android:text="@string/item1" 
     android:textSize="30dp" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginRight="20dp" 
     android:gravity="right" 
     android:text="@string/number1" 
     android:textColor="@color/number_bg" 
     android:textSize="30dp" /> 

</LinearLayout> 

:私はitem_box.xmlと呼ばれる別のXMLファイルを、作った

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

</LinearLayout> 

、コードから(プログラムで)何をしたいのですか?item_box.xmlをmain.xmlに追加します。どうすればこれを達成できますか?

+0

を呼び出しますあなたは起こることを期待していますか? 'item_box'にビューを追加していないので、表示されません。 – Brigham

+0

しかし、私はNullpointerの例外を取得し続け、私の再生時に私のデバイスに表示されません。私は "item_box.xml"と呼ばれるインクルードを作成し、それをメインレイアウトに追加したいと思います。 – Qasim

+0

「働いていない」とはどういう意味ですか?もう1つのこと - 両方のLLがXMLで定義されているようですが、なぜそれらをコードから再構成したいのですか?レイアウトファイルも投稿できますか? –

答えて

4
LinearLayout mainLayout = (LinearLayout)findViewById(R.id.main); 
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View itemBox = inflater.inflate(R.layout.item_box); 
mainLayout.addView(itemBox); 
+0

ベスト回答。ゴールドスロット。好き;) – mghhgm

1

linearLayout1がmainLayoutにないため、NullPointerが取得されています。最初にビューを膨張させてから追加する必要があります。あなたはこれを読んでくださいquestion私はそれがあなたを助けると思う。

1

使用LayoutInflater

LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View itemBox = inflater.inflate(R.layout.item_box); 
1

は(OnCreateイベントでlayout1.xml

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

</LinearLayout> 

をのLinearLayoutにIDを追加し、別のLinearLayout内のこののLinearLayoutを試してみてください)どのようなものがあり

LinearLayout firstlayout=(LinearLayout)findviewbyId(R.id.firstlayout); 
LinearLayout secondlayoout=(LinearLayout)this.getLayoutInflater().inflate(R.layout.layout2,null); //inflating view from xml 
TextView btn1=(TextView)secondlayoout.findviewbyId(R.id.button1); 
btn1.settext("TEST"); 
firstlayout.addview(secondlayoout); 
関連する問題