2014-02-19 51 views
1

我需要一些關於如何隱藏部分列表項目的幫助,當單擊按鈕並且listView是從數據庫動態加載的。我知道我們可以使用tv.setVisibility(View.INVISIBLE);,但那只是當我們從xml獲得該視圖的id時,但我的案例不同?所以任何幫助將不勝感激。如何隱藏動態加載的列表視圖中的特定項目

+0

可以設置標籤的每一行,並與你不ND該行的變化知名度已經一去不復返了,與其ID的工作原理或不可見 –

+0

@ user3294034使用SimpleCursorAdapter並在按鈕上單擊調用swapCursor並帶有光標,該光標根據您的搜索條件保存數據 – pskink

回答

0

從列表中刪除要傳遞給適配器的項目。傳遞新的列表併爲該適配器調用notifyDataSetChanged()。

+0

這是刪除而不是隱藏。 –

+0

listview根據它在getcount()方法中獲得的計數來計算視圖的數量。除非更改,否則listview將總是爲列表填充許多視圖。您可以嘗試將要隱藏的項目放在列表的末尾,並將剩餘項目的數量作爲計數。它可能有效,但可能不值得。 –

0

保存用於在ArrayList中填充listView的數據,然後填充該ArrayList的listView。點擊按鈕時,刪除數組列表中的項目,並調用listView.notifydatasetchanged();

+0

這是刪除,而不是隱藏。 –

+0

可能是 ((TextView)getItem(position))。setVisibility(View.Invisible); 你想隱藏的每個位置 – JesusS

0

例如,如果爲您的ListView使用ArrayAdapter,您將擁有一個List(如ArrayList)。 如果你一直到列表中的一個參考,你可以這樣做:

public void onItemClick(AdapterView<?> arg0, View v, int position, long id) 
{ 
    myList.remove(position); 
    myAdapter.notifyDataSetChanged();   
} 
+0

這是刪除,而不是隱藏。 –

0
 View v = null; 
     if (arg1 == null) { 
      LayoutInflater li = getLayoutInflater(); 
      v = li.inflate(R.layout.adapter_item, null); 
     } else { 
      v = arg1; 
     } 

     txt = (TextView) v 
       .findViewById(R.id.txt); 
     btn = (Button) v.findViewById(R.id.btn); 

     btn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       txt.setVisibity(View.GONE); 
      } 
     }); 

     return v; 
相關問題