0

カスタム アダプターを利用したリスト ビューがあります。アダプタのアイテム リストには 17 のアイテムがありますが、最初の 2 つしか表示されません。トレースしてgetView()、位置 0 と 1 に対してのみ呼び出されていることを確認しました。

アダプターにデータを入力し、それをonCreate()親に設定しActivityます。

FavouritesListAdapter adapter = new FavouritesListAdapter(favourites, this);

((ListView) findViewById(R.id.list)).setAdapter(adapter);
adapter.notifyDataSetChanged(); // not needed but put here out of desperation!

アダプターの署名とgetView()メソッド:

public class FavouritesListAdapter extends BaseAdapter {

    private Context context;
    private ArrayList<Favourite> entries;

    public FavouritesListAdapter(ArrayList<Favourite> favourites, Context context) {
        this.entries = favourites;
        this.context = context;
    }

public View getView(int position, View convertView, ViewGroup parent) {

    RelativeLayout rl;

    Log.d(LOG_DEBUG_TAG, "Count:" + getCount() ", asking for pos " + position);

    if (convertView == null) {

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

        rl = (RelativeLayout) inflater.inflate(R.layout.favourite_tide_table, null);
        convertView = rl;

    } else { // convertView is not null (it's being recycled)

        Favourite thisFavourite = this.getItem(position);

        convertView = thisFavourite.getPortView();

    }

    return convertView;

}

logcat の出力:

Count:17, asking for pos 0
Count:17, asking for pos 0
Count:17, asking for pos 0
Count:17, asking for pos 1
Count:17, asking for pos 0
Count:17, asking for pos 0

アクティビティ XML:

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

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:background="@color/white"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

    <ListView
            android:id="@+id/list"
            android:background="@color/white"
            android:cacheColorHint="#00000000"
            android:divider="#FF0000"
            android:dividerHeight="1px"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

</ScrollView>

最初の 2 つの項目は正しく表示されます。

私は何を逃したのですか?ありがとう!

4

1 に答える 1