我有一個ListView充滿了Twitter的鳴叫。我做了一個自定義的Tweet類,以便可以存儲特殊類型的數字。所以,我有鳴叫類和定製ArrayAdapter:Android ListView過濾而無需重複實例化ArrayAdapters
class Tweet {
private int typeNumber; // My unique type number which does not come from Twitter
private String message;
// ... other tweet data
}
class TweetsAdapter extends ArrayAdapter<Tweet> {
private ArrayList<Tweet> tweets;
TweetsAdapter(Context context, int textViewResourceId, ArrayList<Tweet> tweets) {
super(context, textViewResourceId, tweets);
this.tweets = tweets;
}
public View getView(int position, View convertView, ViewGroup parent) {
// Inflate my own view and set my own tweet row information
}
}
有是有4個按鍵分別代表4個特殊類型號的導航欄。 我想顯示一個過濾的推文ListView,當一個人點擊其中一個類型數字按鈕而不破壞ArrayAdapter中的數據時。
我想出的一種方法是將我的主要推文ArrayList分解成子ArrayLists,並在每次單擊其中一個按鈕時在ListView上設置一個新的ArrayAdapter和相應的子ArrayList。每次實例化一個新的ArrayAdapter似乎效率低下。
有沒有更好的方式來顯示過濾的ListView,同時保持ArrayAdapter上的所有tweet數據(我也試着看過濾器類,它似乎銷燬適配器上的數據「過濾」)?