2014-01-24 2 views
0

Я пытаюсь создать макет динамически. Я получаю данные из базы данных и использую ее для определения макета. Каждая строка из базы данных должна отображаться в макете.Создать динамически макет

Я не хочу использовать ListView, потому что следующим шагом будет щелкнуть по макету и показать некоторые детали.

Вот мой код, чтобы создать динамическую компоновку:

LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View v = inflater.inflate(R.layout.layoutausgabe,null); 

     // insert into main view 
     View insertPoint = findViewById(R.id.scrollView); 
     ((ViewGroup) insertPoint).addView(v, 0, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); 

Вот макет, который должен быть вставлен:

<?xml version="1.0" encoding="utf-8"?> 

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

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Abfahrt - Ankunft |" 
     android:id="@+id/textView" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text=" Dauer |" 
     android:id="@+id/textView2" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text=" Umstieg |" 
     android:id="@+id/textView2" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text=" Route" 
     android:id="@+id/textView2" /> 
</LinearLayout> 

Вот место (Scrollview), где макет должен быть вставлено:

<ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/scrollView" > 


    </ScrollView> 

спасибо за помощь !!!!

+0

вам нужно поставить любой макет как линейный или относительно, потому что, Scrollview не принимает более одного ребенка, так что делает линейное расположение и добавить свой дочерний линейный затем добавить линейный прокручивать вид –

+0

Чудесная ! Теперь, в чем вопрос? – codeMagic

+0

Вы должны пересмотреть свой выбор, чтобы не использовать ListView. В списке можно нажать на элемент и принять меры. –

ответ

0

Попробуйте это:

View insertPoint = findViewById(R.id.scrollView); 
View v = inflater.inflate(R.layout.layoutausgabe,insertPoint, false); 

((ViewGroup) insertPoint).addView(v, 0, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); 
+0

. Это не работало, потому что что-то не так с inflater.inflate (...) – schocka94

+0

Вместо просмотра v = inflater.inflate (R.layout.layoutausgabe, insertPoint, false); попробуйте то, что у вас было: View v = inflater.inflate (R.layout.layoutausgabe, null); –

0

ScrollView принимает только один ребенок, так что вы не можете добавить много Чайлдс к нему,

, чтобы решить эту проблему, вы должны поставить LinearLayout с ориентацией, установленным на verticatl внутри ScrollView , а затем добавьте свои представления в LinearLayout.

Надежда, что помогает

Смежные вопросы