Android 在列表视图中跳过一行

Android 在列表视图中跳过一行,android,android-listview,adapter,Android,Android Listview,Adapter,我猜列表中的每一项都会调用getView(),但我的问题是,如果与该行关联的数据为空,我们能否不显示该行。我只想在getView()中执行此操作 例如: 如果要在列表视图中显示其姓名的人员的警报为空。我不想在列表视图中显示该人员的姓名。在返回视图之前,您可以在最后一行中将该行的名称设置为“已过”-这应该对您有效 编辑:如果内容不为空,请确保将可见性设置为可见-否则,当ListView重用视图时,所有视图都将“消失” myView.setVisibility((myData == null) ?

我猜列表中的每一项都会调用
getView()
,但我的问题是,如果与该行关联的数据为空,我们能否不显示该行。我只想在
getView()中执行此操作

例如:

如果要在列表视图中显示其姓名的人员的警报为空。我不想在列表视图中显示该人员的姓名。

在返回视图之前,您可以在最后一行中将该行的名称设置为“已过”-这应该对您有效

编辑:如果内容不为空,请确保将可见性设置为可见-否则,当ListView重用视图时,所有视图都将“消失”

myView.setVisibility((myData == null) ? View.GONE : View.VISIBLE);

嗨,朋友们,我尝试将可见性设置为“不可见”,但我仍然可以在listview中看到一个空行,所以我做了一点更改,它可以根据我的需要工作,因此如果有人需要类似的结果,值得分享

我使用列表作为源,我的要求是跳过几个应用程序,因此我将该应用程序从列表通知数据集更改中删除

public AppListAdapter(Context context, List<ApplicationInfo> appList) {
        this.context = context;
        this.appList = appList;
        inflater = LayoutInflater.from(context);
        localStorage = new LocalStorage(context);
        pm = context.getPackageManager();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null)
              convertView = inflater.inflate(R.layout.applist_item, parent, false);
            // Other lines of code
        if(appName.length()==0 || getItem(position).packageName.equals("package.name.to.skip")) {
              appList.remove(position);
              notifyDataSetChanged();
        }
    return convertView;
}
public AppListAdapter(上下文,列表appList){
this.context=上下文;
this.appList=appList;
充气器=充气器。从(上下文);
localStorage=新的localStorage(上下文);
pm=context.getPackageManager();
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null)
convertView=充气机。充气(R.layout.applist_项,父项,false);
//其他代码行
if(appName.length()==0 | | getItem(position).packageName.equals(“package.name.to.skip”)){
应用程序。移除(位置);
notifyDataSetChanged();
}
返回视图;
}
关注事项

应用程序。移除(位置)
notifyDataSetChanged()

欢迎您的建议和更正。

AzmatHunzai

我不这么认为。因为列表视图中的每一行都有相同的id,所以它会将上面所有行的可见性设置为“已消失”。这是不正确的-您只需检查每一行的内容是否为空,并将可见性设置为“已消失”或“已消失”。不客气:)我们在自己的项目中使用它,太:)你能告诉我…notifyDataSetChanged()的用途是什么吗?它是否适用于这里。?尝试了此解决方案。它会在列表中创建空白位置为什么不在发送到listview之前过滤此人?是的,我已经这样做了..但我想知道有没有办法在getView()中实现这一点?你不能。在将适配器提交到listviewtry之前,必须先筛选值。当返回view@Raghav:你得到答案了吗?那最后一行代码是什么?