我有大约20个输入列到列表视图。 但我想该用户将有一个选项来禁用(隐藏)鉴于一些列。 我发现,我可以让我自己的数组适配器,并查看一行。 但我不希望这个定义在列2至20个项目。 是否有任何选项怎么办呢?
Answer 1:
我发现了一个办法如何做到这一点。 比如我在列表视图此布局项目。 我会简单地通过调用setVisibility使我自己的适配器,然后(View.GONE); 我会隐藏列表视图这个项目。 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" />
和MyAdapter。
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;
}
}
文章来源: Hide column in listview android