Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.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
Java baseadapter上的Filterable listview返回null_Java_Android_Listview_Filter_Baseadapter - Fatal编程技术网

Java baseadapter上的Filterable listview返回null

Java baseadapter上的Filterable listview返回null,java,android,listview,filter,baseadapter,Java,Android,Listview,Filter,Baseadapter,任何人都可以看到是什么导致logcat返回null,因为它没有告诉我任何有用的信息。它一直在工作,直到我试图添加一个过滤器,现在它崩溃之前,它甚至显示在listview上的数据 public class PostDetailsAdapter extends BaseAdapter implements Filterable { private static List<PostDetails> PostsArray; List<PostDetails> mOriginalV

任何人都可以看到是什么导致logcat返回null,因为它没有告诉我任何有用的信息。它一直在工作,直到我试图添加一个过滤器,现在它崩溃之前,它甚至显示在listview上的数据

public class PostDetailsAdapter extends BaseAdapter implements Filterable {
private static List<PostDetails> PostsArray;
List<PostDetails> mOriginalValues;

private LayoutInflater mInflater;

public PostDetailsAdapter(Context context, List<PostDetails> results) {
    PostsArray = results;
    mInflater = LayoutInflater.from(context);
}

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

public Object getItem(int position) {
    return PostsArray.get(position);
}

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

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.post_row, null);

        holder = new ViewHolder();
        holder.Title = (TextView) convertView.findViewById(R.id.title);
        holder.Date = (TextView) convertView.findViewById(R.id.date);
        holder.Description = (TextView) convertView.findViewById(R.id.description);
        holder.Author = (TextView) convertView.findViewById(R.id.author);

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.Title.setText(PostsArray.get(position).getTitle());
    holder.Date.setText(PostsArray.get(position).getDate());
    holder.Description.setText(PostsArray.get(position).getDescription());
    holder.Author.setText(PostsArray.get(position).getAuthor());

    holder.Title.setTextColor(Color.BLACK);
    holder.Date.setTextColor(Color.BLACK);
    holder.Description.setTextColor(Color.BLACK);
    holder.Author.setTextColor(Color.BLACK);

    return convertView;
}

static class ViewHolder {
    TextView Title;
    TextView Date;
    TextView Description;
    TextView Author;
}

@Override
public Filter getFilter() 
{
    Filter filter = new Filter() 
    {

        @SuppressWarnings("unchecked")
        @Override
        protected void publishResults(CharSequence constraint,FilterResults results) 
        {

            PostsArray = (List<PostDetails>) results.values;
            notifyDataSetChanged();
        }

        @Override
        protected FilterResults performFiltering(CharSequence constraint) 
        {
            FilterResults results = new FilterResults();
            List<PostDetails> FilteredArrList = new ArrayList<PostDetails>();

            if (mOriginalValues == null) 
            {
                System.out.println("");
                mOriginalValues = new ArrayList<PostDetails>(PostsArray);
            }

            if (constraint == null || constraint.length() == 0) 
            {

                // set the Original result to return  
                results.count = mOriginalValues.size();
                results.values = mOriginalValues;
            } 
            else 
            {
                constraint = constraint.toString().toLowerCase();
                for (int i = 0; i < mOriginalValues.size(); i++) 
                {
                    PostDetails data = mOriginalValues.get(i);
                    if (data.getTitle().toLowerCase().contains(constraint.toString())) 
                    {
                        FilteredArrList.add(data);
                    }
                }
                results.count = FilteredArrList.size();
                results.values = FilteredArrList;
            }
            return results;
        }
    };
    return filter;
}
}
公共类PostDetailsAdapter扩展BaseAdapter实现可过滤{
私有静态列表PostsArray;
列出mOriginalValues;
私人停车场;
公共PostDetailsAdapter(上下文、列表结果){
PostsArray=结果;
mInflater=LayoutInflater.from(上下文);
}
public int getCount(){
返回PostsArray.size();
}
公共对象getItem(int位置){
返回PostsArray.get(位置);
}
公共长getItemId(int位置){
返回位置;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
视窗座;
if(convertView==null){
convertView=mInflater.充气(R.layout.post_行,空);
holder=新的ViewHolder();
holder.Title=(TextView)convertView.findViewById(R.id.Title);
holder.Date=(TextView)convertView.findViewById(R.id.Date);
holder.Description=(TextView)convertView.findViewById(R.id.Description);
holder.Author=(TextView)convertView.findViewById(R.id.Author);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.Title.setText(PostsArray.get(position.getTitle());
holder.Date.setText(PostsArray.get(position.getDate());
holder.Description.setText(PostsArray.get(position.getDescription());
holder.Author.setText(PostsArray.get(position.getAuthor());
holder.Title.setTextColor(Color.BLACK);
holder.Date.setTextColor(颜色为黑色);
支架.说明.setTextColor(颜色.黑色);
holder.Author.setTextColor(Color.BLACK);
返回视图;
}
静态类视窗夹{
文本视图标题;
文本查看日期;
文本视图描述;
文本视图作者;
}
@凌驾
公共过滤器getFilter()
{
过滤器过滤器=新过滤器()
{
@抑制警告(“未选中”)
@凌驾
受保护的void publishResults(CharSequence约束、FilterResults结果)
{
PostsArray=(列表)results.values;
notifyDataSetChanged();
}
@凌驾
受保护的筛选器结果性能筛选(CharSequence约束)
{
FilterResults results=新的FilterResults();
List FilteredArrList=新建ArrayList();
if(mOriginalValues==null)
{
System.out.println(“”);
mOriginalValues=新阵列列表(PostsArray);
}
if(constraint==null | | constraint.length()==0)
{
//将原始结果设置为return
results.count=mOriginalValues.size();
结果.值=mOriginalValues;
} 
其他的
{
constraint=constraint.toString().toLowerCase();
for(int i=0;i
原来代码没有问题,在完全设置列表视图之前,我试图将过滤器应用于此列表视图。不完全理解异步任务的乐趣:)