Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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
如何通过SimpleCorsOrAdapter在androidlist的行中省略子布局?_Android_Android Layout_Android Listview_Simplecursoradapter - Fatal编程技术网

如何通过SimpleCorsOrAdapter在androidlist的行中省略子布局?

如何通过SimpleCorsOrAdapter在androidlist的行中省略子布局?,android,android-layout,android-listview,simplecursoradapter,Android,Android Layout,Android Listview,Simplecursoradapter,我有一个ListFragment,其中每一行由从数据库检索的多个数据组成。该数据以子布局的形式进行结构化,其中一个由带有固定文本的LinerLayout和从数据库填充的动态文本组成,类似于Value:X,其中X是来自数据库的值 但是,该值在db中是可选的,如果该值不存在,我不希望显示固定文本 问题是如何在负责行布局膨胀的SimpleCursorAdapter中实现这一点 这是行的布局,其中由固定文本和动态文本组成的子布局是id为valueLayout的布局: 我无法在这里直接找到答案,因此不

我有一个
ListFragment
,其中每一行由从数据库检索的多个数据组成。该数据以子布局的形式进行结构化,其中一个由带有固定文本的
LinerLayout
和从数据库填充的动态文本组成,类似于
Value:X
,其中X是来自数据库的值

但是,该值在db中是可选的,如果该值不存在,我不希望显示固定文本

问题是如何在负责行布局膨胀的
SimpleCursorAdapter
中实现这一点

这是行的布局,其中由固定文本和动态文本组成的子布局是id为valueLayout的布局:



我无法在这里直接找到答案,因此不得不寻找一些信息。因此,我决定在这里也分享答案

解决方案基本上包括从
SimpleCursorAdapter
覆盖
bindView
方法,检查光标中的值,如果不存在,则获取子布局并将其可见性设置为
视图。消失

公共类MyCursorAdapter扩展了SimpleCursorAdapter{
公共MyCursorAdapter(上下文上下文、int布局、游标c、,
字符串[]从,int[]到,int标志){
super(上下文、布局、c、from、to、标志);
}
@凌驾
公共视图(视图v、上下文、光标c){
super.bindView(v,context,c);
//如果该值为空,则清除其线性布局
字符串值=c.getString(c.getColumnIndex(DATA.value));
如果(null==value | | value.isEmpty()){
LinearLayout valueLayout=(LinearLayout)v.findViewById(R.id.valueLayout);
valueLayout.setVisibility(View.GONE);
}
}   
}