android 怎么刷新fragment页面

android 怎么刷新fragment页面,第1张

通常的做法,在onResume中发一起一个异步的请求去拿数据,通过回调,收到返回的数据,然后更新UI。

网络获取数据结束判断数据有更新,然后通过set将控件的数据更新。

举例:

这个是我的一个fragment,我把它放在一个viewpager的fragment中

public class BottomFragmentOne extends BaseFragment {

private static final String ARG_CITY = "city";

private String mCity;

private TextView tmpD;

private TextView tmpN;

private SimpleDraweeView imageD;

private SimpleDraweeView imageN;

public static BottomFragmentOne newInstanceOne(String city) {

BottomFragmentOne fragment = new BottomFragmentOne();

Bundle args = new Bundle();

argsputString(ARG_CITY, city);

fragmentsetArguments(args);

return fragment;

}

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

if (getArguments() != null) {

mCity = getArguments()getString(ARG_CITY);

}

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// Inflate the layout for this fragment

View view = inflaterinflate(Rlayoutbottom_fragment_one, container, false);

tmpD= (TextView) viewfindViewById(Ridtmp_d);

tmpN = (TextView) viewfindViewById(Ridtmp_n);

imageD= (SimpleDraweeView) viewfindViewById(Ridimage_d);

imageN= (SimpleDraweeView) viewfindViewById(Ridimage_n);

setUI();

return view;

}

//用来设置UI,更新UI时重新从数据库获取数据,进行设置

public void setUI(){

Forecast forecast = mFrecastDaogetForecastByCity(mCity);

tmpDsetText(forecastgetDaily_1_max());

tmpNsetText(forecastgetDaily_1_min());

imageDsetImageURI(getImageUri(forecastgetDaily_1_code_d()));

imageNsetImageURI(getImageUri(forecastgetDaily_1_code_n()));

}

}

2除了上面那个,还有一个类似的fragment,我想实按下按钮后,在两个fragment之间进行切换。下面是按钮代码

@Override

public void onClick(View v) {

FragmentManager fm = getChildFragmentManager();

// 开启Fragment事务

FragmentTransaction transaction = fmbeginTransaction();

switch (vgetId())

{

case Ridbutton_left:

if (mBottomOne == null)

{

mBottomOne = new BottomFragmentOne()newInstanceOne(mCity);

}// 使用当前Fragment的布局替代id_content的控件

transactionreplace(Ridbottom_weather,mBottomOne);

break;

case Ridbutton_right:

if (mBottomTwo == null)

{

mBottomTwo = new BottomFragmentTwo()newInstanceTwo(mCity);

}

transactionreplace(Ridbottom_weather, mBottomTwo);

break;

}

// 事务提交

transactioncommit();

}

3下面是viewpager中的fragment用来更新上面两个fragment数据的方法

public void UpdateUI(){

mBottomOnesetUI();

mBottomTwosetUI();

}

1、在Fragment中viewgetActivity()findViewById(Ridxx); 2、其中getActivity可以获取到该Fragment引用的Activity, 3、之后通过findViewById获取到其他与该Activity相关联的Fragment中的控件引用。

Fragment获取它所在的Activity:调用Fragment的getActivity()方法即可返回它所在的Activity

Activity获取它包含的Fragment:调用Activity关联的FragmentManager的findFragmentById(int id)或findFragmentByTag(String tag)方法即可获取指定的Fragment

在界面布局文件中使用<fragment>元素添加Fragment时,可以为<fragment>元素指定android:id或android:tag属性,这两个属性都可用于标识该Fragment,接下来可以通过findFragmentById(int id)或者findFragmentByTag(String tag)来获取该Fragment

fragment可以在xml中添加,也可以直接新建ListViewFragemnt extends Fragment ,在这种方法的OnCreateView方法中,使用layoutinflator加载xml文件View,返回View,然后就是根据View去初始化ListView,数据直接从数据库取出,在适配器Adapter中更新显示数据。

以上就是关于android 怎么刷新fragment页面全部的内容,包括:android 怎么刷新fragment页面、fragment 怎么获取到activity、如何在activity中获取当前fragment等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9699636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存