2

私はListView自分のアプリに..ListViewテキスト、画像、またはその両方を含めることができます。画像がある場合は、最初の行にテキストを表示し、次の行に一連の画像を表示したいのですが、どちらを使用すればよいですか?? ViewFlipperそれともViewPager何か?これを行う方法の例を探し回っています。

どんなポインタでも非常に役に立ちます!!

ありがとう。

編集: リストビューの 1 行目にテキストを表示し、2 行目に写真 (3-5) のリストを表示したい

4

2 に答える 2

1

カスタム アダプターを使用している場合は、何らかの配列をそれにフィードする必要があります。アダプター自体から ListView に別の行を追加できるとは思わないので、配列を解析するか、リストビューを作成するために使用しているデータを解析することを検討します。そこから、テキストと画像セット (存在する場合) 用の別のエントリを持つ別の配列を作成します。次に、その最終的な配列をアダプターにフィードします。JSONObjects で JSONArray を使用すると、すべてのエントリにラベルを設定できるため、より適切に機能する可能性があります。

次に、 getView() メソッドのアダプタ内で、エントリ タイプがテキストかイメージかを確認し、それに基づいてインフレートする xml レイアウトを変更します。または、同じ xml を使用して、setVisibility() で異なるビューを制御することもできます。

リスト項目内で画像を水平方向にスクロールさせたい場合は、Horizo​​ntalScrollView を使用する必要がある場合があります。使用したことはありませんが、そのスクロール要素を他のスクロール要素 (ListView) 内に配置すると、問題が発生する可能性があることはわかっています。

于 2013-01-07T14:08:09.083 に答える
0

画像を含む ListView の作成には、3 つの主要な部分があります。1- メイン レイアウトで単純なリストビューを作成する

2- カスタム リストビュー アイテム レイアウトの作成:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="horizontal" >
<ImageView
 android:id="@+id/img"
 android:layout_width="50dp"
 android:layout_height="50dp"/>
 <TextView
 android:id="@+id/txt"
 android:layout_width="wrap_content"
 android:layout_height="50dp" />
</LinearLayout>

次に、カスタム ListView クラスを作成します。

private final Activity context; // the context view of the list
private final String[] countries; // the list of countries
private final Integer[] imageId; // the list of images that you already uploaded to your @Drawable file (res/drawable-xdpi/)

その後にコンストラクターが続き、customView オブジェクトを作成します。

//class constructor
public CustomList(Activity context,String[] countries, Integer[] imageId) 
{
super(context, R.layout.list_item, countries);
this.context = context;
this.countries = countries;
this.imageId = imageId;
}

customView クラスには、アイテム ビューを返す getView メソッドがあります。

@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.list_item, null, true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.txt);
ImageView imageView = (ImageView) rowView.findViewById(R.id.img);
txtTitle.setText(countries[position]);
imageView.setImageResource(imageId[position]);
return rowView;
}

最後に、mainActivity でリストのアダプターを作成します。

 yourList.setAdapter(new CustomList(MainActivity.this, countries, imageId));

完全なソースコードを確認し、ここからダウンロードできます。

于 2014-04-06T09:41:54.217 に答える