android刷新數據
『壹』 android studio模擬器怎麼刷新內容
第一種方式,可以通過定時刷新項目中的文件,
1.首先需要打開的是Android studio的軟體,並在軟體中載入項目,
2.點擊菜單中的file的選項。彈出的下拉的菜單中可以看到的是為「settings」的選項。這樣就進入到了settings的設置界面中,在設置選項的列表中有一項為version control,選項並點擊進入即可。
3.點擊完version control的選項之後,就會展開這個選項的所有菜單,可以直接點擊 background的選項。
4.點擊完version control的選項之後,就會展開這個選項的所有菜單,可以直接點擊 background的選項。
5.直接進入到了background的設置界面中,在這個界面中,找到一項為VCS Historycache settings的選項,把refresh changes every的選項勾選上,對時間進行設定根據自己需要設置時間長短。
第二種方式是通過手動刷新文件的狀態,進入到Android studio的界面中,點擊菜單中 CVS。彈出的下拉的菜單中,可以看到為Refresh File status的選項,點擊完成之後,就會刷新了項目的文件的狀態。
『貳』 android下拉上拉刷新同事從在怎麼回調數據
注意事項:
1、XListView因為添加了Header,會導致存儲的數據+1,所以賦值時需要position-1。補充:當去掉HeaderView時,position不用-1。
2、提個建議:上拉載入更多,最好在onCreate()中就執行setAdapter,然後不論是空數據、還是有數據,只用更新適配器就行了。
一、XListView
1、下載
gitHub的地址。或者從這兒下。
2、用法
導入圖中的me.maxwin.view包
提供了兩個介面:
IXListViewListener:觸發下拉刷新,上拉載入更多。實現此介面時,onLoadMore()用來上拉載入更多,onRefresh()用來下拉刷新。
OnXScrollListener:和原生的OnScrollListener一樣,但是在header/footer回滾時也會觸發。
幾個常用方法:
setPullRefreshEnable(boolean enable):是否允許下拉刷新
setPullLoadEnable(boolean enable):是否允許上拉載入更多
stopRefresh():停止刷新,重置header view
stopLoadMore():停止載入更多,重置footer view
請求到數據後停止刷新停止載入更多。
setRefreshTime(String time):設置上次刷新的時間
onLoadMore():載入更多時調用的方法。注意第一次進入時不會調用此方法。
onRefresh():下拉刷新時調用的方法。
3、代碼中怎麼體現
1)實現IXListViewListener介面->2)實現上拉刷新和下拉載入更多的數據變更->3)更新header view和footer view,並設置更新時間。
[java] view plain
//1、實現IXListViewListener介面
mListView.setXListViewListener(this);
//2.1 onRefresh中實現下拉刷新的數據載入
@Override
public void onRefresh() {
//請求數據
//更新界面顯示
[java] view plain
onLoad();
}//2.2 onLoadMore中實現上拉載入更多的數據載入
[java] view plain
@Override
public void onLoadMore() {
//請求數據
//更新界面顯示
[java] view plain
onLoad();
}//3、載入完數據後,復位header view和footer view,並設置更新的時間。
[java] view plain
private void onLoad() {
mListView.stopRefresh();mListView.stopLoadMore();
mListView.setRefreshTime("剛剛");
}
4、xml注意事項
當將XListView嵌入到LinearLayout中時,XListView占滿全屏時不能再載入更多。上錯誤代碼:
[java] view plain
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/takemain_ll"
android:layout_below="@id/takemain_l"
android:orientation="vertical" >
<cn.bestbang.rable_consumer_goods.utils.MyExXListView
android:id="@+id/home_list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</cn.bestbang.rable_consumer_goods.utils.MyExXListView>
</LinearLayout>
5、去ScrollView共用
這種情況,重寫XListView會導致上拉載入時頻繁的報錯:適配器未更新,不知道咋解決。
二、PullToRefresh
大部分內容轉自鴻洋的博客:http://blog.csdn.net/lmj623565791/article/details/38238749
1、整體了解:
首先,github上的這個控制項:pull-to-refresh,例子中的功能非常強大,可不止支持ListView和GridView。在下載前,先說下項目結構。github上下載的例子,是依賴於三個項目的,一個基本的library_pullToRefresh(自己要引用到的項目。怎麼引用?自己的項目右鍵->Properties->Android,在Is Library中選擇路徑),一個基本的PullToRefreshViewPager,一個PullToRefreshListFragment。
2、用法
1)設置PullToRefreshListView支持上拉載入和下拉刷新->2)初始化控制項,設置適配器->3)設置監聽事件。在監聽事件中處理上拉載入更多和下拉刷新,設置最後更新的時間。
[java] view plain
<pre name="code" class="java"><pre name="code" class="java">//1、支持上拉載入和下拉刷新
mPullRefreshListView.setMode(Mode.BOTH);
//2、設置適配器 mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mListItems); mPullRefreshListView.setAdapter(mAdapter); //3、設置監聽器mPullRefreshListView.setOnRefreshListener(new OnRefreshListener2<ListView>(){ @Override public void onPullDownToRefresh( PullToRefreshBase<ListView> refreshView){ // 顯示最後更新的時間 refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label); //這里寫下拉刷新的任務 new GetDataTask().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView){ // 顯示最後更新的時間 refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
[java] view plain
//這里寫上拉載入更多的任務
new GetDataTask().execute(); } });
3、屬性介紹
1)ptr:ptrMode="both"支持上拉載入和下拉刷新。disabled禁用下拉刷新和上拉載入。pullFromEnd僅支持上拉載入。manualOnly只允許手動觸發。當然通過代碼也可設置:lv.setMode(Mode.BOTH);
2)ptr:trAnimationStyle="flip" flip:翻轉動畫;rotate:旋轉動畫。
3)ptr:ptrDrawable="@drawable/ic_launcher"設置圖標
4)刷新的時候,是否允許ListView或GridView滾動。覺得為true比較好。5)ptrListViewExtrasEnabled 決定了Header,Footer以何種方式加入mPullRefreshListView,true為headView方式加入,就是滾動時刷新頭部會一起滾動。
4、自定義下拉指示器文本內容等效果:
在初始化完成PullToRefreshListView後,通過lv.getLoadingLayoutProxy()可得到一個ILoadingLayout對象,這個對象可設置各種指示器中的樣式、文本等。
[java] view plain
ILoadingLayout startLabels = mPullRefreshListView
.getLoadingLayoutProxy();
startLabels.setPullLabel("你可勁拉,拉...");// 剛下拉時,顯示的提示
startLabels.setRefreshingLabel("好嘞,正在刷新...");// 刷新時
startLabels.setReleaseLabel("你敢放,我就敢刷新...");// 下來達到一定距離時,顯示的提示
默認是上拉和下拉的字同時改變的,如果希望單獨改變呢:
[java] view plain
private void initIndicator(){
ILoadingLayout startLabels = mPullRefreshListView
.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("你可勁拉,拉...");// 剛下拉時,顯示的提示
startLabels.setRefreshingLabel("好嘞,正在刷新...");// 刷新時
startLabels.setReleaseLabel("你敢放,我就敢刷新...");// 下來達到一定距離時,顯示的提示
ILoadingLayout endLabels = mPullRefreshListView.getLoadingLayoutProxy(
false, true);
endLabels.setPullLabel("你可勁拉,拉2...");// 剛下拉時,顯示的提示
endLabels.setRefreshingLabel("好嘞,正在刷新2...");// 刷新時
endLabels.setReleaseLabel("你敢放,我就敢刷新2...");// 下來達到一定距離時,顯示的提示
}
『叄』 android viewpager 數據如何刷新 呢
ViewPager的數據是通過PageAdapter來裝載的,刷新數據的方法有以下:
調用adapter.notifyDataSetChanged(); 刷新控制項,但是要覆蓋PagerAdapter的getItemPosition方法,並返回return POSITION_NONE;
利用PagerAdapter的工作機制,就是PagerAdapter的執行順序,PagerAdapter作為ViewPager的適配器,無論ViewPager有多少頁,PagerAdapter在初始化時也只初始化開始的2個View,即調用2次instantiateItem方法。而接下來每當ViewPager滑動時,PagerAdapter都會調用destroyItem方法將距離該頁2個步幅以上的那個View銷毀,以此保證PagerAdapter最多隻管轄3個View,且當前View是3個中的中間一個,如果當前View缺少兩邊的View,那麼就instantiateItem,如里有超過2個步幅的就destroyItem。
每當Adapter調用instantiateItem時,運用View.setTag方法將該View標識。當需要更新這個View的數據時,通過調用ViewPager.findViewWithTag方法找到相應的View,然後更新View中的數據。
『肆』 Android UI刷新機制
Android屏幕的刷新包含3個步驟:CPU計算屏幕數據、GPU進一步處理和緩存、最後屏幕(Display)再從緩存中把計算的屏幕數據顯示出來
對於 Android 而言,第一個步驟搜納: CPU 計算屏幕數據 指的也就是 View 樹的繪制過程,也就是 Activity 對應的視圖樹從根布局 DecorView 開始層層遍歷每個 View,分別執行測量、布局、繪制三個操作的過程。我們重點分析的也是這個步驟,關於後續的2個步驟我們可以理解為底層處理,沒必要過於深入。
我們知道Android每隔16.6ms會發送一次垂直同步VSync信息量,1S也就是60幀的畫面。下面這個圖藍色的是CPU計算屏幕數據時間戳,綠色的是GPU的處理,最後黃色的是屏幕。我們可以清楚的看到,每幀的畫面都會提前一幀去計算以及GPU處理。
如果我們保持頁面靜止,那梁橡么Android還是會16.6ms發送一次垂直同步信號量,App這個時候接受不到屏幕刷新的信號。所以也就不會讓 CPU 去計算下一幀畫面數據,但是底層仍然會以固定的頻率來切換每一幀的畫面,只是它後面切換的每一幀畫面都一樣,所以給我們的感覺就是屏幕沒刷新
我們世渣沒都知道Android的刷新離不開ViewRootImpl,在上一篇文章 《Android中UI的繪制流程》 中,大致闡述了Android的UI刷新流程。這里我們進一步深入的理解源碼,以及刷新UI的詳細流程。首先看圖:
『伍』 android 下拉刷新載入最新數據如何實現
下拉刷新一般都是用在listView組件中,給listView添加listHeadView自定義組件,即com.example.pulltorefreshtest.RefreshableView
在activity中取則型得自定義的組件listHeadVIew,
給自定義組件添加事件
在Activity中調用RefreshableView的setOnRefreshListener方法注冊回調介面
在onRefresh方法的最後,記得調用RefreshableView的finishRefreshing方高睜法,通知刷孫念猜新結束。
『陸』 Android 下拉刷新, 如圖所示的這種效果,我總覺得這是最新的sdk提供的,不過android
這不是通知欄這是下拉刷新。
『柒』 android資料庫更新後怎樣刷新listview數據
重寫onStart(),在裡面加上getData()即可,也就是每次進入這個頁面就刷新數據
『捌』 android往資料庫添加數據後刷新列表,新數據無法顯示
我通常的做法是,自己寫adapter繼承於BaseAdapter,然後加一個setData的公開方法。
在activity中可以開啟一個線程去取數據,取完數據調用handler對listView進行載入或刷新。
如果是載入就new
MyAdapter,listView.setAdapter
如果是刷新就adapter.setData(),
adapter.notifyDataSetChanged().
有不懂再問。
『玖』 android listview 怎麼刷新所有數據
所謂的刷新說白了就是從新載入一遍數據,然後從新放在控制項上,所以你就找的地方從新載入一遍數據就好了啊,重新走一遍獲取數據的方法