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感谢您的评论。见我的问题。我已经编辑过了。