2013-02-05 125 views
1

我有大约20列输入到列表视图。但我希望该用户可以选择禁用(隐藏)一些视图中的列。我发现我可以制作自己的数组适配器并查看行。但我不想为行中的2到20个项目定义这个。有没有选择如何做到这一点?在列表视图中隐藏列android

+0

哪些列,它们在代码中的外观如何? – vorrtex

回答

1

我发现了一种方法如何做到这一点。例如,我在listview中有这个布局的项目。我将创建自己的适配器,然后通过调用setVisibility(View.GONE);我将从listview中隐藏这个项目。 PS:这里只是实例中的例子,应该有一些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; 

    } 

} 
相关问题