如何修改android pull refresh-PullToRefresh的提示信息

fragment里使用pulltorefresh后 适配数据不显示。_android开发吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
fragment里使用pulltorefresh后 适配数据不显示。收藏
ListView actualListView = mPullRefreshListView.getRefreshableView();actualListView.setAdapter(mAdapter); 这句话执行后不显示,数据读取到了。。
有没有大神帮忙看看,急求。。。
private Handler handler = new Handler() {public void handleMessage(Message msg) {Noticelist = (ArrayList&Notice&) msg.ArrayList&HashMap&String, Object&& data = new ArrayList&HashMap&String, Object&&();for (int i = 0; i & Noticelist.size(); i++) {HashMap&String, Object& map = new HashMap&String, Object&();map.put(&NoticeName&, Noticelist.get(i).noticeName);map.put(&NoticeDate&, Noticelist.get(i).noticeDate);map.put(&NoticeAuthor&, Noticelist.get(i).noticeAuthor);map.put(&NoticeContent&, Noticelist.get(i).noticeContent);map.put(&NoticeFrom&, Noticelist.get(i).noticeFrom);data.add(map);}mAdapter = new SimpleAdapter(getActivity(), data,R.layout.item_notice, new String[] { &NoticeName&,&NoticeAuthor&,&NoticeDate&},new int[] { R.id.tv_name, R.id.tv_authorname,R.id.tv_date});ListView actualListView = mPullRefreshListView.getRefreshableView();actualListView.setAdapter(mAdapter); //mAdapter.notifyDataSetChanged();if (isNull) {Toast.makeText(getActivity(), &没有更多数据了&, Toast.LENGTH_SHORT).show();}else{Toast.makeText(getActivity(), &加载成功&, Toast.LENGTH_SHORT).show();}//actualListView.setSelectionFromTop(scrollPos, scrollTop);
mPullRefreshListView.onRefreshComplete(); }};@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);}@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {inflater = getActivity().getLayoutInflater();mMainView = inflater.inflate(R.layout.fragment_notice_all, (ViewGroup)getActivity().findViewById(R.id.viewpager), false);ViewGroup p = (ViewGroup) mMainView.getParent(); mPullRefreshListView = (PullToRefreshListView)mMainView.findViewById(R.id.pulltorefreshview);//actualListView=(ListView)mMainView.findViewById(R.id.listview);new Thread() {public void run() {try {Noticelist = GetWebData.getNoticeItem(Url.URL_PATH_NOTICE_NEARBY);Message msg = Message.obtain();msg.obj = Nhandler.sendMessage(msg);} catch (Exception e) {e.printStackTrace();}}}.start();/**
下拉上拉 监听
**/mPullRefreshListView.setOnRefreshListener(new OnRefreshListener&ListView&() {@Overridepublic void onRefresh(PullToRefreshBase&ListView& refreshView) {
String label = DateUtils.formatDateTime(getActivity().getApplicationContext(), System.currentTimeMillis(),
DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);
refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
if (mPullRefreshListView.isHeaderShown()) {
refreshOnlineStatus(true);//
if (mPullRefreshListView.isFooterShown()) {
readMore();
}}private void readMore() {n=n+1;
new Thread(){
public void run(){
isNull = GetWebData.DataIsNull(Url.URL_PATH_NOTICE+n);
Noticelist = GetWebData.getNoticeItem(Url.URL_PATH_NOTICE+n);
Message msg = Message.obtain();
msg.obj = N
handler.sendMessage(msg);
} catch (Exception e) {
e.printStackTrace();
}.start();}});/**
**/mPullRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);mPullRefreshListView.getLoadingLayoutProxy(false, true).setPullLabel(&加载更多&);
mPullRefreshListView.getLoadingLayoutProxy(false, true).setRefreshingLabel(&正在加载&);
mPullRefreshListView.getLoadingLayoutProxy(false, true).setReleaseLabel(&加载成功&);
if (p != null) {
p.removeAllViewsInLayout();
Log.v(&huahua&, &fragment1--&移除已存在的View&);
} return mMainV}
这个fragment是跟viewpager一起使用的。
又没报错。
求人帮忙。。。实在没办法了。。
我也有同样的问题······你解决了么
遇到了同样的问题,完全不知道什么原因
楼主解决了吗?
遇到了同样的问题,完全不知道什么原因
楼主解决了吗?
retun错了吧
给设置一个可以覆盖height的默认适配器就行了lvChannel.setAdapter(new ArrayAdapter&String&(mContext,
android.R.layout.simple_list_item_1, android.R.id.text1,
new String[] { &&, &&, &&, &&, &&, &&, &&, &&, &&, &&, && }));
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或用心创造滤镜
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
有想法,有行动,敢担当!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
用这个来完成一个下拉刷新、上拉加载更多需要解决几个问题:1.怎样判断用户的操作是下拉还是上拉? 根据下拉和上拉显示的布局的可见状态类区分上拉还是下拉,然后执行相应操作。 在PullToRefresh的类库的com.handmark.pulltorefresh.library包下,打开PullToRefreshBase.java,在这个类的最后面添加如下代码:public boolean isHeaderShown() {
return getHeaderLayout().isShown();}public boolean isFooterShown() {
return getFooterLayout().isShown();}然后,在刷新事件中的onRefresh中来判断用户的操作是上拉还是下拉。 如下代码 :if (refreshView.isHeaderShown()) { Log.i("", "下拉刷新... ");} else { Log.i("", "上拉加载更多... ");
}2.刷新完成后,怎样让界面恢复到正常显示数据的状态 ? library提供了相应的方法来结束刷新:&mPullRefreshListView.onRefreshComplete();3.刷新时的提示文本怎样设置 ? 首先说一下刷新的3种情况及设置: 第一种是向下拉刷新,它的设置是:&mPullRefreshListView.setMode(Mode.PULL_FROM_END); 第二种是向上拉刷新,它的设置 是:&&mPullRefreshListView.setMode(Mode.PULL_FROM_START); 第三种是两端刷新: 它的设置是:&PullRefreshListView.setMode(Mode.BOTH); 设置刷新时的提示文本,这里主要需要注意的是getLoadingLayoutProxy(boolean b1, boolean b2),特别注意它的两个参数,相具体的理解,就动手试试就明了了。我的设置代码如下 :
// 下拉刷新时的提示文本设置
mPullRefreshListView.getLoadingLayoutProxy(true, false).setLastUpdatedLabel("下拉刷新");
mPullRefreshListView.getLoadingLayoutProxy(true, false).setPullLabel("");
mPullRefreshListView.getLoadingLayoutProxy(true, false).setRefreshingLabel("正在刷新");
mPullRefreshListView.getLoadingLayoutProxy(true, false).setReleaseLabel("放开以刷新");
// 上拉加载更多时的提示文本设置
mPullRefreshListView.getLoadingLayoutProxy(false, true).setLastUpdatedLabel("上拉加载");
mPullRefreshListView.getLoadingLayoutProxy(false, true).setPullLabel("");
mPullRefreshListView.getLoadingLayoutProxy(false, true).setRefreshingLabel("正在加载...");
mPullRefreshListView.getLoadingLayoutProxy(false, true).setReleaseLabel("放开以加载");4.上拉加载更多时,更新数据之后,怎样让滚动条的位置依然停在上次加载到的位置 ?  想要回去上次加载到的位置,首先要得到上次加载的位置,android为我们提供了得到当前滚动条位置的方法:&& & & &setSelectionFromTop(int position, int y) &-- position 是上一次的位置(List的下标) & y--是距顶部边缘的距离 (可用系统的参数 ) 然后,等 到数据加载完毕后, 将滚动条的位置设置为上一次的位置即可。 用方法 :setSelectionFromTop(y, TRIM_MEMORY_BACKGROUND);解决了上面的问题,一个简单的下拉刷新 和 上拉加载更多就出来了,下面是我的代码 :&public class MainActivity extends Activity { private LinkedList&String& mListI private PullToRefreshListView mPullRefreshListV private ArrayAdapter&String& mA private String[] mStrings = { "1", "2", "3", "4" }; private ListView lvShow = private int y = 0;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
mPullRefreshListView.setMode(Mode.BOTH);
// 下拉刷新时的提示文本设置
mPullRefreshListView.getLoadingLayoutProxy(true, false).setLastUpdatedLabel("下拉刷新");
mPullRefreshListView.getLoadingLayoutProxy(true, false).setPullLabel("");
mPullRefreshListView.getLoadingLayoutProxy(true, false).setRefreshingLabel("正在刷新");
mPullRefreshListView.getLoadingLayoutProxy(true, false).setReleaseLabel("放开以刷新");
// 上拉加载更多时的提示文本设置
mPullRefreshListView.getLoadingLayoutProxy(false, true).setLastUpdatedLabel("上拉加载");
mPullRefreshListView.getLoadingLayoutProxy(false, true).setPullLabel("");
mPullRefreshListView.getLoadingLayoutProxy(false, true).setRefreshingLabel("正在加载...");
mPullRefreshListView.getLoadingLayoutProxy(false, true).setReleaseLabel("放开以加载");
// 添加 一个下拉刷新事件
mPullRefreshListView
.setOnRefreshListener(new OnRefreshListener&ListView&() {
public void onRefresh(
PullToRefreshBase&ListView& refreshView) {
if (refreshView.isHeaderShown()) {
new GetHeaderDataTask().execute();
// 得到上一次滚动条的位置,让加载后的页面停在上一次的位置,便于用户操作
y = mListItems.size();
new GetBottomDataTask().execute();
lvShow = mPullRefreshListView.getRefreshableView();
mListItems = new LinkedList&String&();
mListItems.addAll(Arrays.asList(mStrings));
mAdapter = new ArrayAdapter&String&(this,
android.R.layout.simple_list_item_1, mListItems);
lvShow.setAdapter(mAdapter); } /*
* 功能 : 下拉刷新时的事件处理
*/ private class GetHeaderDataTask extends AsyncTask&Void, Void, String[]& {
protected String[] doInBackground(Void... params) {
// Simulates a background job.
Thread.sleep(4000);
} catch (InterruptedException e) {
protected void onPostExecute(String[] result) {
mListItems.addFirst("-3");
mListItems.addFirst("-4");
mListItems.addFirst("-5");
mAdapter.notifyDataSetChanged();
// 停止刷新
mPullRefreshListView.onRefreshComplete();
super.onPostExecute(result);
* 功能: 上拉加载更多时的事件处理
*/ private class GetBottomDataTask extends AsyncTask&Void, Void, String[]& {
protected String[] doInBackground(Void... params) {
// Simulates a background job.
Thread.sleep(4000);
} catch (InterruptedException e) {
protected void onPostExecute(String[] result) {
mListItems.add("5");
mListItems.add("5");
mListItems.add("5");
mListItems.add("5");
mListItems.add("5");
mListItems.add("5");
mListItems.add("5");
mListItems.add("5");
mListItems.add("5");
mListItems.add("5");
mListItems.add("5");
mListItems.add("8");
mAdapter.notifyDataSetChanged();
// 停止刷新
mPullRefreshListView.onRefreshComplete();
// 设置滚动条的位置 -- 加载更多之后,滚动条的位置应该在上一次划到的位置
lvShow.setSelectionFromTop(y, TRIM_MEMORY_BACKGROUNP);
super.onPostExecute(result);
} }}XML布局文件:&&RelativeLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" &
&com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pull_refresh_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/&&/RelativeLayout&~~~
阅读(13356)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'android 下拉刷新/上拉加载更多【pull-to-refresh】',
blogAbstract:'\t这两天在做一个功能,需要用到“下拉刷新和上拉加载更多”这样的功能,开始的时候以为都是自己用控件加以控件来完成的,后来,在网上找了好长时间,发现直接可以用别人的现在的 library . 引用别人的library后直接就可以用的,只是注意一些细节就可以了。 我用的是pull to refresh (很多人都说这个比较好点)。&& & & & 它支持多种常用的需要刷新的View类型,如:ListView、ExpandableListView、',
blogTag:'android',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:9,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'有想法,有行动,敢担当!',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}如何修改Android-PullToRefresh的提示信息_百度知道
如何修改Android-PullToRefresh的提示信息
提问者采纳
  else  mPullLabel = context  我是自己去重写了pulltorefresh的LoadingLayout方法,调用的时候把上拉或者下拉的状态当做参数传进去.getString(R;  if(ispull)/  mReleaseLabel = context:  default.pull_to_refresh_release_label).pull_to_refresh_push_label).RIGHT.BOTTOM .string:  lp? Gravity.gravity = scrollDirection == Orientation.string.pull_to_refresh_pull_label).pull_to_refresh_refreshing_label).VERTICAL .getString(R.getString(R: G&#47,在  case PULL_FROM_START;    mRefreshingLabel = context.string.getString(R.判断是上拉还是下拉  mPullLabel
资深电脑人
其他类似问题
为您推荐:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您正在使用IE低版浏览器,为了您的IThao123账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
关于使用了OkHttp和Android-PullToRefresh开源库后如何混淆
关于使用了OkHttp和Android-PullToRefresh开源库后如何混淆
本人的一款由于使用了、、等开源库,其中是以的形式引用,其他以形式引用,导致在混淆签名时出现错误,具体错误就不贴了,意思就是找不到某个类,我们可以对应地将所需的包或类去除混淆即可。
在我的中,貌似没有因为混淆发生错误,对于和,具体的混淆代码如下,以供同样因为使用了这两个开源库导致混淆错误的同学参考:
-dontwarn&com.squareup.okhttp.**
-keep&class&com.squareup.okhttp.**&{&*;}&
-dontwarn&okio.**
-dontwarn&com.handmark.pulltorefresh.library.**
-keep&class&com.handmark.pulltorefresh.library.**&{&*;}
-dontwarn&com.handmark.pulltorefresh.library.extras.**
-keep&class&com.handmark.pulltorefresh.library.extras.**&{&*;}
-dontwarn&com.handmark.pulltorefresh.library.internal.**
-keep&class&com.handmark.pulltorefresh.library.internal.**&{&*;}
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
IThao123周刊}

我要回帖

更多关于 android refresh vcs 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信