嗨,朋友,我有一個列表視圖,並從web服務調用獲取內容。在該Web服務調用,也有像我如何隱藏android中的listview項目?
"OGType": "ORG" and "OGType": "GROUP"
字段如果點擊一個按鈕,列表視圖絕了用「OGType」的項目:「ORG」,並隱藏有「OGType」的項目:「GROUP」。希望你明白我的意思。請任何人幫助我。提前致謝。
嗨,朋友,我有一個列表視圖,並從web服務調用獲取內容。在該Web服務調用,也有像我如何隱藏android中的listview項目?
"OGType": "ORG" and "OGType": "GROUP"
字段如果點擊一個按鈕,列表視圖絕了用「OGType」的項目:「ORG」,並隱藏有「OGType」的項目:「GROUP」。希望你明白我的意思。請任何人幫助我。提前致謝。
你可以在你的Adapter
類的getView
方法中做到這一點。這是首部 public View getView(int pos, View convertView, ViewGroup, parent)
在那裏,你可以適當地隱藏元素(S)你想,你知道,使用方法setVisibility()
如需更多幫助,您可以看看here
setVisibility()方法不起作用可能是因爲視圖已經生成。您將看不到列表項目的內容,但仍會看到空白列表項目。 –
這取決於價值,如果你用'GONE'設置你沒有看到任何空白。 –
看看這個答案中的評論:http://stackoverflow.com/a/5043017/1239966 –
非hackish的方式將從您的Collection中刪除用於生成列表視圖的項目,然後致電notifyDataSetChanged()
;
您可以創建自定義適配器並以Array或ArrayList的形式將數據傳遞給它(ArrayList在處理自定義適配器時更好)。無論何時您需要添加或刪除ListView中的數據,只需在您的自定義適配器上添加或刪除項目ArrayList並調用notifyDataSetChanged(),它將自動更新ListView。
就你而言,無論何時你點擊一個按鈕,編輯你的ArrayList並調用你的自定義適配器的方法notifyDataSetChanged()就是這樣。如果您對數據進行了任何更改,每次調用此方法時都會看到ListView將自行刷新。希望能幫助到你。
注 - 定製適配器不是強制性的。可以使用任何適配器,例如SimpleAdapter,ArrayAdapter等。
您可以使用可見列表和過濾器列表。您應該一直使用「可見」來完成BaseAdpter,然後,您可以將可見指針更改爲其他列表(全部,過濾...)
不要擔心內存,只有指針,只有你每個元素只有一次。
public class MyAdapter extends BaseAdapter {
private ArrayList<MyItem> visible;
private ArrayList<MyItem> all;
private ArrayList<MyItem> filter;
public MyAdapter(ArrayList<MyItem> items) {
all = items;
visible = all; //Set all as visible
filter = new ArrayList<Item>();
for (Item i : items)
if (i.getType().equals("ORG"))
filter.add(i);
}
//Complete adapter using "visible"
public void showOnlyOrg() {
visible = filter;
notifydatasetchanged();
}
}
嘗試建立新的數據(僅適用於ORG)到適配器,然後調用
adapter.notifyDataSetChanged();
創建自定義適配器和更多信息做你想要什麼getView()方法參見(HTTP:// www.vogella.com/tutorials/AndroidListView/article.html#adapterown) –