如何自定义列表视图以便为行项目的第一个和第二个位置设置不同的布局?

时间:2014-06-15 18:59:08

标签: android listview android-listview android-custom-view baseadapter

我正在开发一个项目,我需要为每个行项目定制不同布局的列表视图,如下所示 (i)行项目中的第一个位置应为普通图像视图 textview
(ii)行项目中的第二个位置应为水平 列表视图
(iii)连续第三个位置itme应该是正常的自定义 listview

我知道所有这些事情要分开进行,但我不知道如何通过仅更改行项目位置来合并到单个列表视图中。我的确切要求的图像是enter image description here
我也在为您分享自定义列表视图适配器类的一些代码供您参考

public class ListViewAdapter extends BaseAdapter {

    // Declare Variables
    Context context;

    String[] country;
      int[] flag;
    LayoutInflater inflater;

    public ListViewAdapter(Context context, String[] country, int[] flag) {
        this.context = context;
        this.country = country;
        this.flag = flag;
    }

    @Override
    public int getCount() {
        return country.length;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

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

        // Declare Variables
        TextView txtcountry;
        ImageView imgflag;

        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View itemView = inflater.inflate(R.layout.listview_item, parent, false);

        // Locate the TextViews in listview_item.xml
        txtcountry = (TextView) itemView.findViewById(R.id.country);
        // Locate the ImageView in listview_item.xml
        imgflag = (ImageView) itemView.findViewById(R.id.flag);

        // Capture position and set to the TextViews
        txtcountry.setText(country[position]);

        // Capture position and set to the ImageView
        imgflag.setImageResource(flag[position]);

        return itemView;
    } <br>

请帮助我实现这一目标。提前致谢

1 个答案:

答案 0 :(得分:6)

您可以使用适配器中的不同视图为每一行充气。使用:

public View getView(int position, View convertView, ViewGroup parent) {
if(position==0)
{
//view 1
}

else if(position==1)
{
//View 2
}

else
{
Rest of the list elements
}