Android:像Facebook和Twitter一样加载数据

3

我想知道Twitter和Facebook应用程序如何加载数据。

比如,当你滑动页面到底部时,你仍然可以与UI交互,并且它会显示更多数据正在加载...这是如何在程序上实现的?

更明确地说,当您向下滚动新闻源时,当您到达一个点时,它会显示一个圆圈表示进一步的数据正在加载,然后当有更多新的消息可用时,您也可以浏览那些消息。我希望我的表述足够清晰。 我只是想知道这种情况是如何实现的。 是否有任何示例呢?


我建议您从这里开始阅读: http://developer.android.com/training/index.html 谢谢, Giacomo - gsscoder
1个回答

6
这里有一些链接可能会帮助你解决问题。

http://github.com/commonsguy/cwac-endless

Android无限列表

http://www.androidguys.com/2009/10/21/tutorial-autogrowing-listview/

来自链接二的示例逻辑。
public class Test 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(Test.this);
            view.setText("entry " + pos);
            return view;
    }
}
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接