1

リストビュー内に水平スクロールビューがあります。私が欲しいのは、水平方向にスクロールされた行に ViewItem を動的に追加することです。私のアプリケーションでは、一度に 10 件のストーリーが API から取得されます。ユーザーが次の 10 件を表示すると、no. OS のストーリーは無限大です。そのため、xml のビュー アイテムを修正できません。また、各ビューアイテムに onclick リスナーを実装する必要があります。それを行う方法はありますか??

CustomAdapter クラス

public class CustomAdapter extends BaseAdapter 
{
private Activity activity;
private ArrayList<String> data;
private ArrayList<String> image;
private static LayoutInflater inflater=null;

private Context context;
public CustomAdapter(Activity a, ArrayList<String> d, ArrayList<String> i) 
{
    activity = a;
    data=d;
    image=i;
    inflater (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    context=(Context)activity.getBaseContext();
        }

public int getCount() 
{
    return data.size();
}

public Object getItem(int position) 
{
    return position;
}

public long getItemId(int position) 
{
    return position;
}

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

    TextView tv1,tv2,tv3,tv4,tv5,tv6,tv7,tv8,tv9,tv10;

    View vi=convertView;
    if(convertView==null)
        vi = inflater.inflate(R.layout.list_row, null);
    tv1=(TextView)vi.findViewById(R.id.imageView1);
    tv2=(TextView)vi.findViewById(R.id.imageView2);
    tv3=(TextView)vi.findViewById(R.id.imageView3);
    tv4=(TextView)vi.findViewById(R.id.imageView4);
    tv5=(TextView)vi.findViewById(R.id.imageView5);
    tv6=(TextView)vi.findViewById(R.id.textView1);
    tv7=(TextView)vi.findViewById(R.id.textView2);
    tv8=(TextView)vi.findViewById(R.id.textView3);
    tv9=(TextView)vi.findViewById(R.id.textView4);
    tv10=(TextView)vi.findViewById(R.id.textView5);


    tv1.setText(data.get(position).toString());
    tv2.setText(data.get(position).toString());
    tv3.setText(data.get(position).toString());
    tv4.setText(data.get(position).toString());
    tv5.setText(data.get(position).toString());
    tv6.setText(image.get(position).toString());
    tv7.setText(image.get(position).toString());
    tv8.setText(image.get(position).toString());
    tv9.setText(image.get(position).toString());
    tv10.setText(image.get(position).toString());

    return vi;
}

}

list_row.xmlリストビューの行

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:id="@+id/linear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <TextView
                    android:id="@+id/imageView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <TextView
                    android:id="@+id/imageView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />
            </LinearLayout>

             <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >


                <TextView
                    android:id="@+id/imageView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />

                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <TextView
                    android:id="@+id/imageView4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />

                <TextView
                    android:id="@+id/textView4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <TextView
                    android:id="@+id/imageView5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />

                <TextView
                    android:id="@+id/textView5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text 1" />
            </LinearLayout>
        </LinearLayout>
    </HorizontalScrollView>


</LinearLayout

>

私が望む のは、スクロールされるときに項目を水平スクロール ビューに動的に追加することです。ストーリーは無限にある可能性がありますが、私の API は一度に 10 のストーリーを提供します。

4

1 に答える 1

0

アダプタを作成します。アダプターでは、すべての画像、テキスト、または必要なもののビューを作成できます。インターネット上にはたくさんの例があります。たとえば
これ。

次に、たとえばスクロールするたびに更新します。アダプタで使用 notifyDataSetChanged()してリフレッシュできます。

また、これは Google I/O でのリストビューに関する素晴らしいビデオです

于 2013-06-13T17:40:06.260 に答える