Верхний и нижний колонтитулы в ListView Adapter

1
try {           
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuilder sb = new StringBuilder();
    String line = null;
    while ((line = reader.readLine()) != null) {
      sb.append(line);
    }
    is.close();
    resultString = sb.toString();
    String[] ArrayStr = Func.split(resultString, "|*|");
    String[] arr;

    lv = new ListView(context);
    lv.setAdapter(null);        
    // populate
    ArrayList<Device> m_Devices = new ArrayList<Device>();
    Device device;
    for(int i = 0; i < ArrayStr.length; i++){
        arr = Func.split(ArrayStr[i], "|**|");
        device = new Device(arr[1], Integer.parseInt(arr[0]));
        m_Devices.add(device);
    }
    // +header n footer (must above custom adapter)

    View v1 = getLayoutInflater().inflate(R.layout.header, null);
    lv.addHeaderView(v1);


    View v = getLayoutInflater().inflate(R.layout.footer, null);
    lv.addFooterView(v);



    // custom adapter
    CustomAdapter lvAdapter =  new CustomAdapter(context, m_Devices);
    lv.setAdapter(lvAdapter);
    lv.setOnItemClickListener(new OnItemClickListener() {
    @Override

    public void onItemClick(AdapterView<?> a, View v, int position, long id) {
    AlertDialog.Builder adb=new AlertDialog.Builder(Menu1.this);
    adb.setTitle("LVSelectedItemExample");
    adb.setMessage("Selected Item is = "+lv.getItemAtPosition(position));
    adb.setPositiveButton("Ok", null);
    adb.show();
    }

    });

Как сделать верхний и нижний колонтитулы статичными? верхний колонтитул заголовка также прокручивается, например, в виде списка. У меня был google n есть кто-то sugest 4, размещающий верхний и нижний колонтитулы вне списка, но я не знаю места где? я уже пытаюсь помещать его в свой пользовательский адаптер n там нехорошо... так что PLZ может сказать мне, как исправить эту проблему?

  • 0
    Взгляните на footerView и headerView
  • 0
    Для липких верхних и нижних колонтитулов, посмотрите этот полезный блог
Показать ещё 1 комментарий
Теги:
header
android-listview

1 ответ

2
Лучший ответ

Я думаю, что размещение их вне ListView означает, что вы должны использовать пользовательские элементы представления, например. TextViews, которые вы размещаете выше и ниже ListView. Эти элементы больше не имеют ничего общего с ListView. Таким образом, вы больше не можете обращаться к ним с помощью lv.addHeaderView(v1); или lv.addFooterView(v);. Вместо этого вы должны рассматривать их как обычные элементы TextView. Конечно, вы также можете использовать пользовательские представления вместо TextViews.

Обновление

Макет для вашей деятельности должен выглядеть примерно так. Первый TextView - это заголовок, за которым следует ListView, и ниже этого мы получили еще один TextView в качестве нижнего колонтитула. Верхний и нижний колонтитулы не нуждаются в TextViews, они могут быть любым видом.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView android:id="@+id/header_txt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Footer Text"/>
    <ListView android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
    <TextView android:id="@+id/footer_txt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Footer Text"/>
</LinearLayout>

Итак, вы привяжете адаптер к ListView, как вы уже делали. Чтобы установить текст для верхнего и нижнего колонтитула, вы используете следующие строки.

TextView header = (TextView) findViewById(R.id.header_text);
header.setText("This is my header text");
TextView footer = (TextView) findViewById(R.id.footer_text);
footer.setText("This is my footer text");
  • 0
    @flo можешь ли ты привести мне пример формата? bcoz Я уже пробовал так много возможных вариантов, но никто не решил мою проблему ... THX 4 ур помощник :)
  • 0
    Обновленный ответ.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню