我ListView
参与了我的活动。单击按钮后,将AynscTask
调用 an ,完成后将 a 附加BaseAdapter
到ListView
it'sonPostExcecuteMethod
以显示结果:
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;
}
}
从我的主要活动(即最初Activity
调用. 我怎样才能做到这一点?AsyncTask
SearchResultsAdapter
由于我似乎无权访问适配器实例,如何从我的主 UI 线程访问适配器行?我还读了一些关于打电话notifyDatasetChanged()
的东西?
谢谢。