Android 在listview中隐藏列
我在listview中输入了大约20列。但我希望用户可以选择禁用(隐藏)视图中的某些列。我发现我可以为行创建自己的阵列适配器和视图。但我不想为行中的2到20个项目定义这个。有什么办法可以做吗 我找到了一种方法。例如,我在listview中有此项布局。我将制作自己的适配器,然后只需调用setVisibility(View.GONE);我将从listview中隐藏此项目。Android 在listview中隐藏列,android,sqlite,listview,hide,multiple-columns,Android,Sqlite,Listview,Hide,Multiple Columns,我在listview中输入了大约20列。但我希望用户可以选择禁用(隐藏)视图中的某些列。我发现我可以为行创建自己的阵列适配器和视图。但我不想为行中的2到20个项目定义这个。有什么办法可以做吗 我找到了一种方法。例如,我在listview中有此项布局。我将制作自己的适配器,然后只需调用setVisibility(View.GONE);我将从listview中隐藏此项目。 <TextView android:id="@+id/description" android:layou
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/description"
android:layout_alignBottom="@+id/description"
android:layout_toRightOf="@+id/description"
android:text="TextView" />
PS:这里是realcode中唯一的例子,应该有一些IF()来隐藏列
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/description"
android:layout_alignBottom="@+id/description"
android:layout_toRightOf="@+id/description"
android:text="TextView" />
项目的布局。
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/description"
android:layout_alignBottom="@+id/description"
android:layout_toRightOf="@+id/description"
android:text="TextView" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/description"
android:layout_alignBottom="@+id/description"
android:layout_toRightOf="@+id/description"
android:text="TextView" />
还有我的适配器
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/description"
android:layout_alignBottom="@+id/description"
android:layout_toRightOf="@+id/description"
android:text="TextView" />
private class ConnectedAdapter extends ArrayAdapter<ConnectionClass> {
private ArrayList<ConnectionClass> connectionList;
public ConnectedAdapter(Context context, int textViewResourceId,
ArrayList<ConnectionClass> countryList) {
super(context, textViewResourceId, countryList);
this.connectionList = new ArrayList<ConnectionClass>();
this.connectionList.addAll(countryList);
}
private class ViewHolder {
TextView description;
TextView value;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
Log.v("ConvertView", String.valueOf(position));
if (convertView == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.activity_connected_item,
null);
holder = new ViewHolder();
holder.description = (TextView) convertView
.findViewById(R.id.description);
holder.value = (TextView) convertView
.findViewById(R.id.value);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ConnectionClass connection = connectedList.get(position);
holder.description.setText(connection.getDescription());
holder.description.setVisibility(View.GONE);
holder.value.setText(connection.getValue());
return convertView;
}
}
私有类ConnectedAdapter扩展了ArrayAdapter{
私有ArrayList连接列表;
公共连接适配器(上下文,int textViewResourceId,
ArrayList国家列表){
super(上下文、textViewResourceId、countryList);
this.connectionList=新的ArrayList();
this.connectionList.addAll(countryList);
}
私有类视窗持有者{
文本视图描述;
文本视图值;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
Log.v(“ConvertView”,String.valueOf(position));
if(convertView==null){
LayoutInflater vi=(LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
convertView=vi.充气(R.布局.活动\u连接的\u项目,
无效);
holder=新的ViewHolder();
holder.description=(TextView)convertView
.findViewById(R.id.说明);
holder.value=(TextView)convertView
.findViewById(R.id.value);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
ConnectionClass connection=connectedList.get(位置);
holder.description.setText(connection.getDescription());
支架.说明.设置可见性(视图.消失);
holder.value.setText(connection.getValue());
返回视图;
}
}
我找到了一种方法。例如,我在listview中有此项布局。我将制作自己的适配器,然后只需调用setVisibility(View.GONE);我将从listview中隐藏此项目。
PS:这里是realcode中唯一的例子,应该有一些IF()来隐藏列
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/description"
android:layout_alignBottom="@+id/description"
android:layout_toRightOf="@+id/description"
android:text="TextView" />
项目的布局。
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/description"
android:layout_alignBottom="@+id/description"
android:layout_toRightOf="@+id/description"
android:text="TextView" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/description"
android:layout_alignBottom="@+id/description"
android:layout_toRightOf="@+id/description"
android:text="TextView" />
还有我的适配器
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/description"
android:layout_alignBottom="@+id/description"
android:layout_toRightOf="@+id/description"
android:text="TextView" />
private class ConnectedAdapter extends ArrayAdapter<ConnectionClass> {
private ArrayList<ConnectionClass> connectionList;
public ConnectedAdapter(Context context, int textViewResourceId,
ArrayList<ConnectionClass> countryList) {
super(context, textViewResourceId, countryList);
this.connectionList = new ArrayList<ConnectionClass>();
this.connectionList.addAll(countryList);
}
private class ViewHolder {
TextView description;
TextView value;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
Log.v("ConvertView", String.valueOf(position));
if (convertView == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.activity_connected_item,
null);
holder = new ViewHolder();
holder.description = (TextView) convertView
.findViewById(R.id.description);
holder.value = (TextView) convertView
.findViewById(R.id.value);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ConnectionClass connection = connectedList.get(position);
holder.description.setText(connection.getDescription());
holder.description.setVisibility(View.GONE);
holder.value.setText(connection.getValue());
return convertView;
}
}
私有类ConnectedAdapter扩展了ArrayAdapter{
私有ArrayList连接列表;
公共连接适配器(上下文,int textViewResourceId,
ArrayList国家列表){
super(上下文、textViewResourceId、countryList);
this.connectionList=新的ArrayList();
this.connectionList.addAll(countryList);
}
私有类视窗持有者{
文本视图描述;
文本视图值;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
Log.v(“ConvertView”,String.valueOf(position));
if(convertView==null){
LayoutInflater vi=(LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
convertView=vi.充气(R.布局.活动\u连接的\u项目,
无效);
holder=新的ViewHolder();
holder.description=(TextView)convertView
.findViewById(R.id.说明);
holder.value=(TextView)convertView
.findViewById(R.id.value);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
ConnectionClass connection=connectedList.get(位置);
holder.description.setText(connection.getDescription());
支架.说明.设置可见性(视图.消失);
holder.value.setText(connection.getValue());
返回视图;
}
}
哪些列,它们在代码中的外观如何?哪些列,它们在代码中的外观如何?