Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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 如何以编程方式从列表视图隐藏单行(自定义适配器)_Java_Android_Listview - Fatal编程技术网

Java 如何以编程方式从列表视图隐藏单行(自定义适配器)

Java 如何以编程方式从列表视图隐藏单行(自定义适配器),java,android,listview,Java,Android,Listview,我有一个列表视图应用程序,并使用自定义适配器,但我无法从适配器中隐藏特定行 我的代码 -:在java中:- 适配器 class Adapter extends ArrayAdapter { int[] imageArray; String[] titleArray; String[] descriptionArray; public Adapter(Context context, String[] titles1, String [] description1

我有一个列表视图应用程序,并使用自定义适配器,但我无法从适配器中隐藏特定行

我的代码

-:在java中:-

适配器

class Adapter extends ArrayAdapter {
    int[] imageArray;
    String[] titleArray;
    String[] descriptionArray;

    public Adapter(Context context, String[] titles1, String [] description1, int[] img1) {
        super(context, R.layout.settings_list_row, R.id.settingsTitles, titles1);
        this.imageArray = img1;
        this.titleArray = titles1;
        this.descriptionArray = description1;
    }

    @NonNull
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row = inflater.inflate(R.layout.settings_list_row,parent,false);
        ImageView myImage = (ImageView) row.findViewById(R.id.settingsIcons);
        TextView myTitle = (TextView) row.findViewById(R.id.settingsTitles);
        TextView myDescription = (TextView) row.findViewById(R.id.settingsDescriptions);
        myImage.setImageResource(imageArray[position]);
        myTitle.setText(titleArray[position]);
        myDescription.setText(descriptionArray[position]);
        return row;
    }
}
主要活动

String [] titles = {"ti1","ti2","ti3","ti4","ti5"};
    String [] descriptions = {"de1","de2","de3","de4","de5"};
    int [] images = {R.drawable.ic_image,R.drawable.ic_image,R.drawable.ic_image,R.drawable.ic_image,R.drawable.ic_image};
    ListView lv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_view);
    lv = (ListView) findViewById(R.id.listView);
    final Adapter adapter = new Adapter(getApplicationContext(), titles, descriptions, images);
    lv.setAdapter(adapter);
}
-:删除:-

adapter.remove(位置==0)


但是不工作

ListAdapter
中,只需返回
getCount()
getItem()
getItemId()
的修改值,即可过滤掉不希望显示的项目

比如说

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    Holder holder = new Holder();
    View rowView;

    rowView = inflater.inflate(R.layout.custom_list_item, null);

    holder.tvName = (TextView) rowView.findViewById(R.id.textViewName);
    holder.img = (ImageView) rowView.findViewById(R.id.imageView1);

    if (items[position].NeedForCollapsed){
        System.out.println("set Visibility.Gone");
        holder.tvName.setVisibility(View.GONE);
        holder.img.setVisibility(View.GONE);

        return rowView;
    }

    //new values
    holder.tvName.setText(items[position].name);
    holder.img.setImageResource(GetImageID(items[position]));

    return rowView;
}

public class Holder
{
    TextView tvName;
    ImageView img;
}

如何接收适配器中的值?它显示出错误!