0
我正在使用RefreshableListView(拉刷新)從here。但我使用自定義ListAdapter而不是ArrayAdapter。它工作正常,但唯一的問題是它將新項目添加到列表的底部,而我希望新項目顯示在上面。。 我在網上提到了很多關於類似問題的文章,但還沒有找到解決我的問題的方法。如果有人能指出我出錯的地方,那將非常棒。添加列表視圖項到Android的頂部拉刷新刷新列表查看
以下是代碼片段:
public void onCreate(Bundle savedInstanceState) {
final CustomAdapter adapter = new CustomAdapter(this, R.layout.mylist, mItems);
mListView = (RefreshableListView) findViewById(R.id.listview);
mListView.setAdapter(adapter);
// Callback to refresh the list
mListView.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(RefreshableListView listView) {
ivFooter.setImageResource(R.drawable.back);
new NewDataTask().execute();
}
});
}
和的AsyncTask
private class NewDataTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
String retVal = myArrayList.get(i);
if (i < myArrayList.size() - 1) {
i++;
} else {
i = 0;
}
return retVal;
}
@Override
protected void onPostExecute(String result) {
mItems.add(0, result);
mListView.completeRefreshing();
super.onPostExecute(result);
}
}
和自定義適配器類
class CustomAdapter extends BaseAdapter {
public int getCount() {
return mItems.size();
}
public Object getItem(int position) {
return mItems.get(position);
}
public long getItemId(int position) {
return position;
}
public boolean areAllItemsEnabled() {
return false;
}
public boolean isEnabled(int position) {
return false;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.mylist, null);
}
String quote = myArrayList.get(position);
if (quote != null) {
TextView tt = (TextView) v.findViewById(R.id.tvQuote);
ImageView iv = (ImageView) v.findViewById(R.id.ivPicture);
if (tt != null) {
tt.setText(quote);
}
if (iv != null) {
//Setting image
}
return v;
}
'mItems' 是原單個項目的列表和我我正在給它添加'myArrayList'。 就像我說的工作正常,但添加元素(在刷新)一個接一個在底部..而我想新的元素被添加在上面。任何輸入都會有很大的幫助。
在此先感謝。