0

今日、複数列のリストビューについて読んでいます。それらは私が必要としているもののようですが、ハッシュマップを使用せずにそれらを設定する方法についての情報を提供することはできません. 私が見たすべての例では、リストビュー データ アダプターを構築するためにハッシュ マップを使用していますが、大量のデータが暗示される場合、これは重すぎます。ハッシュリストなしでリストビューを作成する方法はありますか?

私が見たすべての例は、次のようなものを使用しています

4

1 に答える 1

0

はい、可能です。コードをチェックしてください。

public class List_view_ArrayAdapter extends ArrayAdapter<String> {
    private Context context;
    private String[] name;
    private String[] address;
    private String[] rating;
    private TextView nameTextView;
    private TextView addressTextView;
    private ImageView lisiconImageView;
    private AppManagers appManagers;

    public List_view_ArrayAdapter(Context context, String[] name,
            String[] address, String[] rating) {
        super(context, R.layout.list_layout, name);
        this.context = context;
        this.name = name;
        this.address = address;
        this.rating = rating;
        appManagers = new AppManagers();

    }

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

        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.list_layout, parent, false);
        nameTextView = (TextView) rowView.findViewById(R.id.nameTextView);
        addressTextView = (TextView) rowView.findViewById(R.id.addressTextView);

        lisiconImageView = (ImageView) rowView
                .findViewById(R.id.listiconImageView);
        nameTextView.setText(name[position]);
        addressTextView.setText(address[position]);

        lisiconImageView.setImageDrawable(appManagers
                .ImageOperations(rating[position]));
        // imageView.setImageResource(imageid[position]);
        return rowView;
    }

}

この行「R.layout.list_layout」のlist_layoutは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" android:background="#d9d9d9">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" android:layout_marginBottom="5dp" android:layout_marginTop="5dp">

        <ImageView
            android:id="@+id/listiconImageView"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" android:layout_marginLeft="5dp" android:gravity="center_vertical" android:layout_marginBottom="5dp" android:layout_marginTop="5dp">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Name : "
                android:textColor="#2a170e" />

            <TextView
                android:id="@+id/nameTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView"
                android:textColor="#2a170e" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Address : "
                android:textColor="#2a170e" />

            <TextView
                android:id="@+id/addressTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView"
                android:textColor="#2a170e" />
        </LinearLayout>

    </LinearLayout>

</LinearLayout>

最後に、メインのアクティビティから呼び出します。

new List_view_ArrayAdapter arrayAdapter= new List_view_ArrayAdapter(context, appManagers.getNameArray(cafeandbarsList), name, address, rating); 

listView.setAdapter(arrayAdapter);

お役に立てると思います。

ありがとう

于 2012-06-14T16:17:19.903 に答える