2013-02-05 183 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; 

    } 

} 
相關問題