Ich versuche mich gerade an Android-Layouts. Ein normales LinearLayout (R.layout.main) soll programmatisch um eine beliebige Anzahl Views erweitert werden.
Das Main-Layout besteht nur aus einem Textview mit dem Inhalt "Überschrift":
[XML]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
androidrientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
androidadding="8dip"
>
<TextView
style="@style/main_title"
android:text="@string/main_title"
/>
</LinearLayout>
[/XML]
Im Java-Code erzeuge ich zwei Buttons und möchte diese in die Content-View der Main-Activity einfügen:
Das funktioniert auch, nur hängen die Knöpfe ganz oben im Layout und verdecken die Überschrift (s.u.).
Irgendwie müsste man hier mit RelativeLayout arbeiten und einen Bezug zum Main-Layout angeben. Aber wie funktioniert das? Oder gibt es eine andere Möglichkeit das Problem zu lösen?
Das Main-Layout besteht nur aus einem Textview mit dem Inhalt "Überschrift":
[XML]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
androidrientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
androidadding="8dip"
>
<TextView
style="@style/main_title"
android:text="@string/main_title"
/>
</LinearLayout>
[/XML]
Im Java-Code erzeuge ich zwei Buttons und möchte diese in die Content-View der Main-Activity einfügen:
Java:
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button1 = new Button(this);
Button button2 = new Button(this);
button1.setText("Huhu1");
button2.setText("Huhu2");
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.addView(button1);
ll.addView(button2);
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
addContentView(ll, params );
}
}
Irgendwie müsste man hier mit RelativeLayout arbeiten und einen Bezug zum Main-Layout angeben. Aber wie funktioniert das? Oder gibt es eine andere Möglichkeit das Problem zu lösen?