Относительный просмотр списка, простой адаптер не работает - PullRequest
0 голосов
/ 21 октября 2011

Я пытаюсь отобразить некоторые элементы в виде списка, расположенного в относительном макете.Весь макет находится в одном XML-файле (main.xml)

Макет также имеет 2 кнопки и еще 2 текстовых поля (EditText).

Я не могу заставить его работать, так как:

  1. В списке не отображаются элементы

  2. Если список расширяется, он дублирует кнопки и текстовые поля, имеющиеся в макете

Может ли кто-нибудь помочь мне?

Вот часть макета:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@drawable/kpnback">

 <EditText 
  android:layout_height="wrap_content" 
  android:layout_width="110dp" 
  android:id="@+id/editText1"
  android:text="edit1"
  android:inputType="textMultiLine"
  android:layout_below="@+id/lbl_top">
 </EditText> 

 <EditText 
  android:layout_height="wrap_content" 
  android:layout_width="110dp" 
  android:id="@+id/editText2" 
  android:text="edit2"
  android:inputType="textMultiLine"
  android:layout_marginLeft="160dp"
  android:layout_below="@+id/lbl_top">
 </EditText> 

 <ListView 
  android:layout_width="fill_parent" 
  android:layout_height="20dp"
  android:id="@+id/kpn" 
  android:layout_y="350dp"
  android:layout_below="@+id/editText1">
 </ListView> 
</RelativeLayout> 

Код для простого адаптера:

@Override 
    protected void onPostExecute(String result) { 
        // create the grid item mapping
        ListView kp = (ListView)findViewById(R.id.kpn);

        String[] from = new String[] {"col_1", "col_2"};
        int[] to = new int[] { R.id.editText1, R.id.editText1 };

        List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
        HashMap<String, String> map = new HashMap<String, String>();

        Document doc = Jsoup.parse(kpn);
        Elements tdsFromSecondColumn = doc.select("table.personaltable td:eq(0)");
        Elements tdsFromSecondColumn1 = doc.select("table.personaltable td:eq(1)"); 

        for (Element tdFromSecondColumn : tdsFromSecondColumn) {
            map.put("col_1", tdFromSecondColumn.text()); 
            fillMaps.add(map);

            System.out.println(tdFromSecondColumn.text()); 

        } 
        for (Element tdFromSecondColumn1 : tdsFromSecondColumn1) {
            map.put("col_2", tdFromSecondColumn1.text());
            fillMaps.add(map);

            System.out.println(tdFromSecondColumn1.text());
        }

        SimpleAdapter adapter = new SimpleAdapter(AndroidLogin.this, fillMaps, R.layout.main, from, to); 
        kp.setAdapter(adapter);

1 Ответ

0 голосов
/ 21 октября 2011

1) Не используйте "@ + id / ..." для атрибута layout_below. Вместо этого используйте "@id /..."

2) lbl_top отсутствует внутри RelativeLayout ..

3) Вам нужно будет указать layout_toLeftOf или layout_toRightOf, кроме указания layout_below.

Надеюсь, это поможет ..

...