我有一個ListView
在我的活動。在點擊一個按鈕,一個AynscTask
被調用時,它完成的時候附加一個BaseAdapter
到ListView
在它的onPostExcecuteMethod
顯示結果:如何從我的Activity線程修改適配器中的行?
protected void onPostExecute(ArrayList<Result> objResults) {
ListView lvwResults = (ListView) objContext.findViewById(R.id.results);
lvwResults.setAdapter(new SearchResultsAdapter(this.objContext, objResults));
}
適配器看起來像這樣一個非常簡單的音符:
public class SearchResultsAdapter extends BaseAdapter {
private static ArrayList<Result> objResults;
private Search ctxContext = null;
public SearchResultsAdapter(Search ctxContext, ArrayList<Result> objResults) {
this.ctxContext = ctxContext;
SearchResultsAdapter.objResults = objResults;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater mInflater = LayoutInflater.from(ctxContext);
View vewRow = mInflater.inflate(R.layout.row, null);
TextView tvwName = (TextView) vewRow.findViewById(R.id.name);
tvwName.setText(objResults.get(position).getName());
return vewRow;
}
}
從我的主要活動,即最初調用AsyncTask
的Activity
,我想對結果列表SearchResultsAdapter
做一些排序和過濾操作。我怎樣才能做到這一點?
如何從我的主UI線程訪問適配器行,因爲我似乎無法訪問適配器實例?我還讀了一些關於撥打notifyDatasetChanged()
什麼的?
謝謝。