SwipeRefreshLayout.setRefreshing(false) 停不下来 肿么办啊!

jitongxi 2014-04-18 12:04:47
直接扔代码吧


package cn.lianfa.elec.SceneManagement;

import java.io.File;
import java.util.ArrayList;

import cn.lianfa.elec.R;
import android.R.anim;
import android.annotation.SuppressLint;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.app.ListFragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

public class SceneAllPicFragment extends ListFragment {
String RootFilePath = Environment.getExternalStorageDirectory().getPath()
+ "/pdpic/image";

ArrayList<ScenePicture> listItem = new ArrayList<ScenePicture>(); // ListView的数据源

SwipeRefreshLayout swipelayout;

@SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

// 添加SwipeRefreshLayout
View layout = super.onCreateView(inflater, container,
savedInstanceState);
swipelayout = new SwipeRefreshLayout(getActivity());
swipelayout.addView(layout);
// swipelayout.setOverScrollMode(SwipeRefreshLayout.OVER_SCROLL_NEVER);

// swipelayout.setColorScheme(android.R.color.darker_gray,
// android.R.color.white, android.R.color.darker_gray,
// android.R.color.white);
swipelayout.setOnRefreshListener(new OnRefreshListener() {

@Override
public void onRefresh() {
// TODO Auto-generated method stub
System.out.println("刷新开始!!!");
if (swipelayout.isRefreshing()!=true)
{
initData();
}
System.out.println("刷新结束!!!");
}
});

// TODO Auto-generated method stub
if (listItem.size() == 0) {
initData();
}
;
AllPicBaseAdapter Allpicbsadptr = new AllPicBaseAdapter(getActivity()
.getBaseContext(), R.layout.all_picinfo_item, listItem);
setListAdapter(Allpicbsadptr);

return swipelayout;

}

private void initData() {
// TODO Auto-generated method stub
// 将所有文件存入list中
Runnable run=new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
swipelayout.setRefreshing(true);
listItem.clear();
File f = new File(RootFilePath);
File[] files = f.listFiles();// 列出所有文件
if (files != null) {
for (int i = 0; i <= files.length - 1; i++) {
File file = files[i];
System.out.println(file.toURI().getPath());
ScenePicture pic = new ScenePicture(android.net.Uri.parse(file
.toURI().getPath()));
listItem.add(pic);
}
}
swipelayout.setRefreshing(false);
}
};
new Thread(run).start();

}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
}
}
...全文
2048 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuai123456 2015-11-23
  • 打赏
  • 举报
回复
mSwipeLayout.setRefreshing(false); 这句没执行的原因
jasoncol_521 2014-11-05
  • 打赏
  • 举报
回复
swipelayout.setRefreshing(FALSE!!!!!!!!);
dasamanren 2014-04-21
  • 打赏
  • 举报
回复
if (swipelayout.isRefreshing()!=true) { initData(); } 这个错了,这句你放在监听里,监听是刷新的时候触发的,所以这个时候swipelayout.isRefreshing()就是true的,根本就不执行initData(),所以就没有执行swipelayout.setRefreshing(false);
哎,真难 2014-04-18
  • 打赏
  • 举报
回复
停都停不下来,哈哈,用thread启动吧,发送Message去让handler判断

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧