2

そこで、リストにデータを入力するためのカスタムArrayAdapterを作成しました。これは、getView(int position、View v、ViewGroup parent)をオーバーライドするだけです。

私がこのようにそれを使うならば:

public class MyActivity extends ListActivity {
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setListAdapter(adapter);
  }
}

すべてが正常に機能し、すべてのエントリでリストが正しく表示されます。

ここで、XMLレイアウトの<ListView/>で同じアダプタクラスを使用しようとすると、次のようになります。

ListView lv = (ListView) v.findViewById(R.id.list);
MyAdapter a = new MyAdapter (lv.getContext(), R.layout.list_item, entries);
lv.setAdapter(a);

リストの最初のエントリのみが表示されます。

私はすでにadapter.add(entry.get(i));を使用して手動でアイテムを追加しようとしました。そしてadapter.notifyDataSetChanged();を呼び出します。その後、それは役に立たなかった。

e:XMLレイアウトは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:padding="1dp">

    <TextView
        android:id="@+id/bc_path"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="3dp"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceSmall"/>

    <TextView
        android:id="@+id/bc_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="3dp"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:background="@drawable/title_gradient"/>

    <TextView
        android:id="@+id/bc_genre"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="3dp"
        android:background="@drawable/location_gradient"
        android:textColor="#ffffff"/>

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="0.4"
        android:layout_marginTop="3dp"
        android:layout_marginBottom="3dp">
        <ImageButton 
            android:id="@+id/bc_homepage"
            android:src="@drawable/homepage"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight=".1"
            android:padding="0dp"
            android:onClick="loadWebsite"
            android:background="@drawable/black_button"
            android:layout_margin="2dp"
            />
        <ImageButton 
            android:id="@+id/bc_facebook"
            android:src="@drawable/facebook"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight=".1"
            android:padding="0dp"
            android:onClick="loadWebsite"
            android:background="@drawable/black_button"
            android:layout_margin="2dp"
            />
        <ImageButton 
            android:id="@+id/bc_myspace"
            android:src="@drawable/myspace"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight=".1"
            android:padding="0dp"
            android:onClick="loadWebsite"
            android:background="@drawable/black_button"
            android:layout_margin="2dp"
            />
        <ImageButton 
            android:id="@+id/bc_fav"
            android:src="@drawable/d_attends"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight=".1"
            android:padding="0dp"
            android:onClick="favBand"
            android:background="@drawable/black_button"
            android:layout_margin="2dp"
            />
    </LinearLayout>

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"/>

</LinearLayout>

4

1 に答える 1

11

組み込みの ListView はスクロール機能を提供するため、 scrollView 内で ListView を使用しないでください。上記のコードでは、Linear Layout 内にすべてのビューを垂直方向に追加しているため、ListView が一番下に来るため、ルートが ScrollView であるため、List ビューの自動スクロール ビュー オプションではすべてのエントリを表示できません。これについて考えて、ScrollView の外に ListView を追加してみてください。

于 2012-04-27T15:31:00.253 に答える