Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在列表视图中实现多布局_Android_Android Layout_Listview_Layout - Fatal编程技术网

Android 在列表视图中实现多布局

Android 在列表视图中实现多布局,android,android-layout,listview,layout,Android,Android Layout,Listview,Layout,您好,我正在尝试在一个listview中实现多重布局,其中文件类型来自webservices,有人能建议如何实现该任务吗?下面是我的代码。我已经实现了下面的适配器,但视图中给出了null 适配器 package kbs.com.dynamiclistview; import android.content.Context; import android.graphics.Bitmap; import android.view.LayoutInflater; import android.view

您好,我正在尝试在一个listview中实现多重布局,其中文件类型来自webservices,有人能建议如何实现该任务吗?下面是我的代码。我已经实现了下面的适配器,但视图中给出了null

适配器

package kbs.com.dynamiclistview;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;

import java.util.ArrayList;

/**
* Created by user on 2/13/2016.
*/
public class MyCustomAdapter extends BaseAdapter {

    ArrayList<Bean> slist = new ArrayList<Bean>();
    Context context;


    public MyCustomAdapter(ArrayList<Bean> slist, Context context) {
        this.slist = slist;
        this.context = context;
    }

    @Override
    public int getCount() {
        return slist.size();
    }

    @Override
    public Object getItem(int i) {
        return slist.get(i);
    }

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {

        final Bean bean = slist.get(i);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if (view == null) {
            if (slist.get(i).getFiletype().equalsIgnoreCase("TEXT")) {

                System.out.println("In if text :--" + bean.getFiletype());


                view = inflater.inflate(R.layout.textlayout, viewGroup, false);

                TextView itemname = (TextView) view.findViewById(R.id.itemname);

                itemname.setText(bean.filetext);

            }

            if (slist.get(i).getFiletype().equalsIgnoreCase("IMAGES")) {

                //   LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.imglayout, viewGroup, false);
                System.out.println("In if image :--" + bean.getFiletype());

                ImageView img = (ImageView) view.findViewById(R.id.img);


                ImageLoader imageLoader = ImageLoader.getInstance();

                imageLoader.init(ImageLoaderConfiguration.createDefault(context));
                DisplayImageOptions option = new DisplayImageOptions.Builder().displayer(new RoundedBitmapDisplayer(1000)).cacheInMemory(true)
                        .cacheOnDisc(true).resetViewBeforeLoading(true)
                        .showImageForEmptyUri(R.mipmap.ic_launcher)
                        .showImageOnFail(R.drawable.close)
                        .showImageOnLoading(R.drawable.images).bitmapConfig(Bitmap.Config.RGB_565).build();


                imageLoader.displayImage(bean.getFileurl(), img, option);


            }

        }
        return view;
    }
}
package kbs.com.dynamiclistview;
导入android.content.Context;
导入android.graphics.Bitmap;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.ImageView;
导入android.widget.TextView;
导入com.nostra13.universalimageloader.core.DisplayImageOptions;
导入com.nostra13.universalimageloader.core.ImageLoader;
导入com.nostra13.universialimageloader.core.imageloader配置;
导入com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
导入java.util.ArrayList;
/**
*用户于2016年2月13日创建。
*/
公共类MyCustomAdapter扩展了BaseAdapter{
ArrayList slist=新的ArrayList();
语境;
公共MyCustomAdapter(ArrayList slist,上下文){
this.slist=slist;
this.context=上下文;
}
@凌驾
public int getCount(){
返回slist.size();
}
@凌驾
公共对象getItem(int i){
返回slist.get(i);
}
@凌驾
公共长getItemId(int i){
返回i;
}
@凌驾
公共视图getView(int i、视图视图、视图组视图组){
final Bean=slist.get(i);
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
如果(视图==null){
if(slist.get(i).getFiletype().equalsIgnoreCase(“文本”)){
System.out.println(“In-if-text:-”+bean.getFiletype());
视图=充气机。充气(R.layout.textloayout,viewGroup,false);
TextView itemname=(TextView)view.findViewById(R.id.itemname);
itemname.setText(bean.filetext);
}
if(slist.get(i).getFiletype().equalsIgnoreCase(“图像”)){
//LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
视图=充气机。充气(R.layout.imglayout,视图组,false);
System.out.println(“In-if-image:-”+bean.getFiletype());
ImageView img=(ImageView)view.findViewById(R.id.img);
ImageLoader ImageLoader=ImageLoader.getInstance();
init(ImageLoaderConfiguration.createDefault(上下文));
DisplayImageOptions选项=新的DisplayImageOptions.Builder().displayer(新的RoundedBitmapDisplayer(1000)).cacheInMemory(true)
.cacheOnDisc(true).在加载之前重置视图(true)
.showImageForEmptyUri(R.mipmap.ic_启动器)
.showImageOnFail(R.drawable.close)
.showImageOnLoading(R.drawable.images).bitmapConfig(Bitmap.Config.RGB_565).build();
displayImage(bean.getFileurl(),img,option);
}
}
返回视图;
}
}

您可以在示例下使用getViewTypeCount方法:

@Override
public int getViewTypeCount() {
    return 2;
}
然后我们必须实现逻辑,根据位置值选择要分配给行的布局类型:

@Override public int getItemViewType(int position) 
{
 return (contactList.get(position).getContactType() == ContactType.CONTACT_WITH_IMAGE) ? 0 : 1; 
} 
您可以在getView中检查类型视图

int type = getItemViewType(position);

更多信息此链接

查看此链接嗨,你能帮我举一些例子吗,因为我从未参与过回收商查看此链接谢谢。。但我想要一些例子