Добавление вида к статическому макету - PullRequest
0 голосов
/ 17 января 2012

Я программист первого дня на android, и вот моя проблема: в моем приложении есть вспомогательное действие, которое использует статическое расположение; моя деятельность в методе onCreate получает список данных - как мне вставить эти данные в существующий макет?

Пока что я пробовал этот код, но он ничего не показывает, хотя исключений нет и элементов мало, поэтому цикл работает:

Класс активности:

    try {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.results);

        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View v = inflater.inflate(R.layout.results, null);
        // Find the ScrollView 
        LinearLayout sv = (LinearLayout) v.findViewById(R.id.lMain);

       // getting data here
       for (int i = 0; i < recipesList.getId().size(); i++) {
           LinearLayout ll = new LinearLayout(this);
       ll.setOrientation(LinearLayout.VERTICAL);

       // Add text
       TextView tv = new TextView(this);
       tv.setText("abc");
       ll.addView(tv);

       sv.addView(ll);
   }

Results.xml

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scroller"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true">

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

        </LinearLayout>
    </ScrollView>

1 Ответ

0 голосов
/ 17 января 2012

Ваш apporch не так. Вы должны сделать так.

try
{        
super.onCreate(savedInstanceState);         
setContentView(R.layout.results);          
LinearLayout sv = (LinearLayout) findViewById(R.id.lMain); 
// getting data here       
  for (int i = 0; i < recipesList.getId().size(); i++) 
  {    
    // Add text        
    TextView tv = new TextView(this);        
    tv.setText("abc");        
    sv .addView(tv);           
   } 
}
...