我有一個按鈕(reserveButtons)ArrayList我可以在列表視圖中顯示。我做了一個搜索功能,它在我的數據庫中搜索並輸出一個整數列表(resultID)。它們對應的索引號爲reserveButtons我想要顯示。搜索列表視圖,而不是過濾,只是膨脹並顯示有效項目
簡單地說,我要的是點擊搜索按鈕時,做這樣的事情:
ArrayAdapter<ReserveButton> adapter = new MyListAdapter();
ListView list = (ListView) myView.findViewById(R.id.resultslist);
list.setAdapter(adapter);
for (int result : resultID) {
adapter.add(reserveButtons.get(result));
}
因此,對於每一個結果,我想對應的按鈕添加到列表視圖。
這裏是私有類MylistAadapter:
private class MyListAdapter extends ArrayAdapter<ReserveButton> {
public MyListAdapter() {
super(getActivity(), R.layout.list_item, reserveButtons);
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
if(itemView == null) {
itemView = gettActivity().getLayoutInflater().inflate(R.layout.list_item, parent, false);
}
ReserveButton currentButton = reserveButtons.get(position);
//the resultItem is the id of the buttons
Button butt = (Button) itemView.findViewById(R.id.resultItem);
butt.setBackground(currentButton.getImage());
return itemView;
}
}
我知道getView只會顯示每reserveButton,但我想在getView的代碼時,我添加的每個被執行按鈕,但位置不會改變,因爲位置 = 結果在第一個代碼塊的for循環中。
//This code is inside MyListAdapter
@Override
public void add(ReserveButton object) {
/* What do I write here to inflate a list_item and give it
the background image reserveButton.get(result).getImage() */
super.add(object);
}
如何重寫添加方法MyListAdapter,這樣我可以添加一個reserveButton,並改變其背景圖片爲每個結果在resultID名單。
如果沒有添加方法可以完成同樣的事情,請告訴。
P.S:我不想只列出每個reserveButton然後用搜索過濾它們;我只想顯示用戶正在查找的按鈕。