1

listView で動作するヘッダー/フッターを取得できません。私は多くのアプローチを試みましたが、どこが間違っているのかわかりません。ここで基本的なコードを見つけてください。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <ListView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/listView"
            android:layout_gravity="center"/>
</LinearLayout>

header.xml

<?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:padding="5dip">

<Button android:id="@+id/previous"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />

</RelativeLayout>

MainActivity.java

package com.example.listview;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class MainActivity extends Activity {

    private static final String[] lakes = {
            "Superior",
            "Victoria",
            "Huron",
            "Michigan",
            "Tanganyika",
            "Baikal",
            "Great Bear Lake",
            "Great Slave Lake",
            "Erie",
            "Winnipeg",
            "Ontario",
            "Balkhash",
            "Ladoga",
            "Vostok",
            "Onega",
            "Titicaca",
            "Nicaragua",
            "Athabasca" };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LayoutInflater inflater = this.getLayoutInflater();
        RelativeLayout listFooterView = (RelativeLayout)inflater.inflate(R.layout.header, null);

        ListView listView = (ListView)findViewById(R.id.listView);
        listView.addFooterView(listFooterView);

        ArrayAdapter<String> adapter =
                new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, lakes);
        listView.setAdapter(adapter);

    }
}

listView.addFooterView(listFooterView); を削除すると 、アプリケーションが動作し、listView が表示されます。ただし、このステートメントを含めると、アプリケーションがクラッシュします。この問題の解決策を教えてください。

よろしくアヌバフ

4

0 に答える 0