當前位置:首頁 » 安卓系統 » androidfragment刷新

androidfragment刷新

發布時間: 2022-09-04 23:41:11

⑴ android 怎麼刷新fragment頁面

  1. 通常的做法,在onResume中發一起一個非同步的請求去拿數據,通過回調,收到返回的數據,然後更新UI。

  2. 網路獲取數據結束判斷數據有更新,然後通過set將控制項的數據更新。

舉例:

  1. 這個是我的一個fragment,我把它放在一個viewpager的fragment中

java">{
privatestaticfinalStringARG_CITY="city";
privateStringmCity;
privateTextViewtmpD;
privateTextViewtmpN;
privateSimpleDraweeViewimageD;
privateSimpleDraweeViewimageN;
(Stringcity){
BottomFragmentOnefragment=newBottomFragmentOne();
Bundleargs=newBundle();
args.putString(ARG_CITY,city);
fragment.setArguments(args);
returnfragment;
}
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
if(getArguments()!=null){
mCity=getArguments().getString(ARG_CITY);
}
}
@Override
publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,
BundlesavedInstanceState){
//
Viewview=inflater.inflate(R.layout.bottom_fragment_one,container,false);
tmpD=(TextView)view.findViewById(R.id.tmp_d);
tmpN=(TextView)view.findViewById(R.id.tmp_n);
imageD=(SimpleDraweeView)view.findViewById(R.id.image_d);
imageN=(SimpleDraweeView)view.findViewById(R.id.image_n);
setUI();
returnview;
}
//用來設置UI,更新UI時重新從資料庫獲取數據,進行設置
publicvoidsetUI(){
Forecastforecast=mFrecastDao.getForecastByCity(mCity);
tmpD.setText(forecast.getDaily_1_max());
tmpN.setText(forecast.getDaily_1_min());
imageD.setImageURI(getImageUri(forecast.getDaily_1_code_d()));
imageN.setImageURI(getImageUri(forecast.getDaily_1_code_n()));
}
}

2.除了上面那個,還有一個類似的fragment,我想實按下按鈕後,在兩個fragment之間進行切換。下面是按鈕代碼

@Override
publicvoidonClick(Viewv){
FragmentManagerfm=getChildFragmentManager();
//開啟Fragment事務
=fm.beginTransaction();
switch(v.getId())
{
caseR.id.button_left:
if(mBottomOne==null)
{
mBottomOne=newBottomFragmentOne().newInstanceOne(mCity);
}//使用當前Fragment的布局替代id_content的控制項
transaction.replace(R.id.bottom_weather,mBottomOne);
break;
caseR.id.button_right:
if(mBottomTwo==null)
{
mBottomTwo=newBottomFragmentTwo().newInstanceTwo(mCity);
}
transaction.replace(R.id.bottom_weather,mBottomTwo);
break;
}
//事務提交
transaction.commit();
}

3.下面是viewpager中的fragment用來更新上面兩個fragment數據的方法。

publicvoidUpdateUI(){
mBottomOne.setUI();
mBottomTwo.setUI();
}

⑵ Android中,FragmentTransaction類的replace()方法的作用是什麼

對於fragment的使用就我所知就我會的只有兩種吧,一種是add方式來進行show和add,這種方式你切換fragment不會讓fragment重新刷新,而用replace方式會使fragment重新刷新,因為add方式是將fragment隱藏了而不是銷毀再創建,replace方式每次都是重新創建。具體我們還是看代碼來說吧,這種基礎的東西看看代碼就懂了。

⑶ 如何在ViewPager中的各個Fragment間傳遞數據並刷新Fragment界面

如果Fragment已經存在,試圖通過fragment.setArguments(bundle)傳遞參數將導致異常:

12-02 00:14:55.375: E/AndroidRuntime(8492): java.lang.IllegalStateException: Fragment already active
12-02 00:14:55.375: E/AndroidRuntime(8492): at android.support.v4.app.Fragment.setArguments(Fragment.java:548)

我更新Fragment的常用辦法是,為Fragment定義一個public的方法:

// To update fragment in ViewPager, we should implement a public method for the fragment,
// and do updating stuff in this method.
public void updateDate(Date date) {
mDate = date;
mTextView.setText(mDate.toString());
}

然後獲取需要更新的Fragment,再然後調用這個方法。
考慮到你只有4個Fragment,可以嘗試在activity內用一個Array或者List保存這4個fragment的實例(這種法子比較笨)。
而且需要使用FragmentPagerAdapter,而不是FragmentStatePagerAdapter,這樣在ViewPager中切換頁面時,fragment的實例也不會被銷毀。可以參考我的這篇文章 如何更新及替換ViewPager中的Fragment

⑷ android 在用add hide show 方法切換fragment的時候怎麼刷新數據

當Fragment隱藏後重新展示時(fragment.show),調用onrequest刷新界面
* 否則每次都要重新復制
*/
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
//rootview是Fragment通過inflate進來的布局
rootView.invalidate();

⑸ android 怎樣在fragment中給listview添加下拉刷新上拉載入

注意事項:
1、XListView因為添加了Header,會導致存儲的數據+1,所以賦值時需要position-1。補充:當去掉HeaderView時,position不用-1。
2、提個建議:上拉載入更多,最好在onCreate()中就執行setAdapter,然後不論是空數據、還是有數據,只用更新適配器就行了。
一、XListView
1、下載
gitHub的地址。或者從這兒下。
2、用法
導入圖中的me.maxwin.view包
提供了兩個介面:
IXListViewListener:觸發下拉刷新,上拉載入更多。實現此介面時,onLoadMore()用來上拉載入更多,onRefresh()用來下拉刷新。

⑹ android Fragment 實時更新數據問題。

寫個回調的介面,當activity刷新數據的時候,調fragment的介面就可以了
或者簡單的用eventbus或者用localbroadcastreceiver

⑺ android中Fragment能否實現下拉刷新

可以啊。下拉刷新跟actionbar沒有一毛錢的關系。

⑻ Android中Fragment怎樣刷新UI

刷新UI要在主線程,Fragment和Activity是類似的,所以在要刷新UI的地方handler發送消息,在主線程中定義的hanler處理消息,更新UI,建議看下安卓的安卓handler機制。

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:637
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:366
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:82
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:308
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:789
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:339
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:210
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:810
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:364
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:590