1

我在 Listview 中有水平滚动视图。我想要的是在水平滚动的行中动态添加 ViewItem 。在我的应用程序中,一次从 API 获取 10 个故事,当用户 scolls 时,将显示下一个 10 并且没有。操作系统的故事可以是无限的。所以我无法修复 xml 中的视图项目。我还需要在每个视图项上实现 onclick 侦听器。任何想法怎么做?

自定义适配器类

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 回答