在horizo​​ntalscrollview中动态添加View项目

时间:2013-06-13 17:29:22

标签: android android-layout android-listview

我在Listview中有水平滚动视图。 我想要的是在水平滚动的行中动态添加ViewItem。 在我的应用程序中,10个故事一次从API获取,当用户scolls接下来的10个将被显示而no。 os故事可以是infinte。所以我无法修复xml中的视图项。 此外,我需要在每个viewitem上实现onclick监听器。任何想法怎么做??

CutomAdapter类

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 listview行

    <?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

&GT;

我想要的是在滚动时动态地将项目添加到水平滚动视图中 由于故事可以是infinte,但我的API将一次提供10个故事。

1 个答案:

答案 0 :(得分:0)

创建适配器。 在适配器中,您可以为每个图像,文本或任何您想要的内容创建视图。 互联网上有很多例子。
例如This

然后每次滚动时刷新例如。 您可以使用适配器中的notifyDataSetChanged()进行刷新。

另外,this是关于Google I / O列表视图的精彩视频