2

xml に Listview があります。そのような構造:

<ListView 
    android:id="@+id/SeriesCastListItemView"
    android:paddingTop="10dip"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:divider="#FFFFFF"
    android:dividerHeight="1px"/>

Listviewここで、Java コードで高さを設定したいと思います。私は次のコードで試しています。

ListView castListItemView = (ListView) findViewById(R.id.SeriesCastListItemView);
castListItemView.setAdapter(new CastAdapter(this, castDescriptionArr));
castListItemView.setLayoutParams(new ListView.LayoutParams(LayoutParams.FILL_PARENT, 500));

しかし、それは与えjava.lang.ClassCastException: android.widget.AbsListView$LayoutParamsます。私のコードの問題は何ですか?

4

2 に答える 2

8

ListView を含む親ビューの LayoutParams を使用する必要があります。私の場合、ListView をフレーム レイアウトに配置し、このコードを使用しました。ListView を LinearLayout に配置した場合は、LinearLayout.LayoutParams を使用します。

ListView castListItemView = (ListView) findViewById(R.id.SeriesCastListItemView);
castListItemView.setAdapter(new CastAdapter(this, castDescriptionArr));
castListItemView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, 500));

質問のタイプミスだと思いますが、3行目のcastListItemViewの「c」が小文字であることを確認してください。

ただし、MrJre は良い点を指摘しています。多くの異なるビューには独自の LayoutParams があるため、以前にインポートした LayoutParams クラスに基づいて Eclipse に推測させるのではなく、(FrameLayout.LayoutParams のように) 使用するパラメーターを持つビューを含めることをお勧めします。

詳細については、この前の質問を参照してください。

于 2011-07-21T14:11:41.383 に答える
0

この行で: new ListView.LayoutParams(LayoutParams.FILL_PARENT, 500)LayoutParams クラスを混同しています。

また

new ListView.LayoutParams(ListView.LayoutParams.FILL_PARENT, 500)

また

new LayoutParams(LayoutParams.FILL_PARENT, 500)

それを修正します私の推測です。

于 2011-07-21T13:33:53.727 に答える