Android 列表数组绑定ListView并更新数据和ListView
我的代码:Android 列表数组绑定ListView并更新数据和ListView,android,listview,Android,Listview,我的代码: adapter = new SimpleAdapter(this.Context, Arraylist, R.layout.activity_lxxx_show, new String[] { "_id", "line_id", "sort_order", "station_name", "status", "Top_colour", "Bottom_colour", "Left_colour", "Right_colour" }, new int[] { R.id._id,
adapter = new SimpleAdapter(this.Context, Arraylist, R.layout.activity_lxxx_show,
new String[]
{
"_id", "line_id", "sort_order", "station_name", "status",
"Top_colour", "Bottom_colour", "Left_colour", "Right_colour"
},
new int[]
{
R.id._id, R.id.tv_line_id, R.id.tv_sort_order, R.id.tv_station_name, R.id.tv_status,
R.id.imageView_Top, R.id.imageView_Bottom, R.id.imageView_Left, R.id.imageView_Right
});
lv = (ListView) this.Context.findViewById(R.id.listView_lxxx);
lv.setAdapter(adapter); //display data in ListView
adapter.notifyDataSetChanged();
我需要在一段时间内重复调用此代码。我想将不同的Arraylist数据绑定到适配器。它当前可以更新数据
但是ListView是自动的。关键是当我将LIstView滑到底部时,LIstView会再次绑定数据并显示在LIstView的顶部
如何解决这个问题?如何控制ListView?不要重复创建ListView和适配器。如果重复创建listview和Adapter,显示列表将是一个新列表,它将显示listview的顶部而不是当前位置。因此,创建列表和适配器一次,当您想要将新项目绑定到列表时,只需更新适配器的数据并按如下方式调用即可
adapter.notifyDataSetChanged();
请检查下面我发布的示例
public class GrowingListViewActivity extends ListActivity implements OnScrollListener {
Aleph0 adapter = new Aleph0();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(adapter);
getListView().setOnScrollListener(this);
}
public void onScroll(AbsListView view, int firstVisible, int visibleCount,
int totalCount) {
boolean loadMore = /* maybe add a padding */
firstVisible + visibleCount >= totalCount;
if (loadMore) {
adapter.count += visibleCount; // or any other amount
adapter.notifyDataSetChanged();
}
}
public void onScrollStateChanged(AbsListView v, int s) {
}
class Aleph0 extends BaseAdapter {
int count = 40; /* starting amount */
public int getCount() {
return count;
}
public Object getItem(int pos) {
return pos;
}
public long getItemId(int pos) {
return pos;
}
public View getView(int pos, View v, ViewGroup p) {
TextView view = new TextView(GrowingListViewActivity.this);
view.setText("entry View : " + pos);
return view;
}
}
}
我认为这将对您有所帮助。发布一些代码,说明您如何将数据附加到适配器。@Raj感谢您的评论。见我的问题。我已经编辑过了。