多条目加载

//主页面
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {

private XListView xListView;
private int num=0;
private boolean into=true;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    xListView = (XListView) findViewById(R.id.xl);
    xListView.setPullLoadEnable(true);
    xListView.setXListViewListener(this);
    GetJieXi("http://apis.juhe.cn/cook/query?menu="
            + URLEncoder.encode("水煮鱼")+"&key="
            +URLEncoder.encode("34689251284051bcf818c8fdd7f37303")+"&pn="+num);


}

public void GetJieXi(String path){
    new AsyncTask<String,Void,String>(){

        private MyBase myBase;

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用`BackgroundWorker`组件来在滚动条滚动时预加载界面,具体步骤如下: 1. 创建一个`BackgroundWorker`组件,用于在后台加载数据。 2. 在滚动条的`Scroll`事件中,检查滚动条位置是否达到了预加载的位置,如果是则启动`BackgroundWorker`组件加载数据。 3. 在`BackgroundWorker`的`DoWork`事件中,加载数据并将其存储在一个缓存中。 4. 在`BackgroundWorker`的`RunWorkerCompleted`事件中,将加载的数据添加到界面中。 下面是一个示例代码,可以在滚动条滚动时预加载列表数据: ```csharp private void Form1_Load(object sender, EventArgs e) { // 初始化滚动条 this.vScrollBar1.Minimum = 0; this.vScrollBar1.Maximum = 1000; this.vScrollBar1.LargeChange = 100; } private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) { // 判断是否需要预加载 if (e.NewValue + this.vScrollBar1.LargeChange >= 800) { // 启动 BackgroundWorker 加载数据 this.backgroundWorker1.RunWorkerAsync(); } } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { // 模拟加载数据 Thread.Sleep(5000); // 将加载的数据存储在缓存中 List<string> data = new List<string>(); for (int i = 0; i < 50; i++) { data.Add("数据行 " + (i + 1).ToString()); } e.Result = data; } private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { // 将加载的数据添加到界面中 if (e.Error == null) { List<string> data = e.Result as List<string>; foreach (string item in data) { this.listBox1.Items.Add(item); } } } ``` 在上面的代码中,我们通过滚动条的`Scroll`事件来检查是否需要预加载数据,如果需要则启动`BackgroundWorker`组件加载数据。`BackgroundWorker`的`DoWork`事件中模拟了加载数据的过程,并将数据存储在一个缓存中。最后,在`BackgroundWorker`的`RunWorkerCompleted`事件中将加载的数据添加到界面中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值