Android 从活动到片段获取更新的数据?
我对android开发者来说是个新手,我通过bundle从活动中获取数据,但bundle数据是通过菜单选项更新的,但fragment没有获取更新的数据 //正在调用片段Android 从活动到片段获取更新的数据?,android,fragment,Android,Fragment,我对android开发者来说是个新手,我通过bundle从活动中获取数据,但bundle数据是通过菜单选项更新的,但fragment没有获取更新的数据 //正在调用片段 FragmentTransaction fragmentTransaction=getSupportFragmentManager().beginTransaction(); final Bundle bundle=new Bundle(); String sid=mStudent
FragmentTransaction fragmentTransaction=getSupportFragmentManager().beginTransaction();
final Bundle bundle=new Bundle();
String sid=mStudents.get(selectedno).getStudentId();
bundle.putString("studentidbundle", sid);
// Toast.makeText(this, ""+sid, Toast.LENGTH_SHORT).show();
ProgressFrame progressFrame=new ProgressFrame();
progressFrame.setArguments(bundle);
fragmentTransaction.addToBackStack("FrameTransaction");
fragmentTransaction.detach(progressFrame);
fragmentTransaction.attach(progressFrame);
fragmentTransaction.replace(R.id.fraame1main, progressFrame);
fragmentTransaction.commit();
//从活动到片段获取数据
sid = getArguments().getString("studentidbundle");
你可以这样做
public static ProgressFrame getInstance(string id){
ProgressFrame progressFrame=new ProgressFrame();
Bundle bundle=new Bundle();
bundle.putString("studentidbundle", id);
progressFrame.setArguments(bundle);
return fragment ;
}
现在,您可以通过以下方式使用beginTransaction:
fragmentTransaction.replace(R.id.fraame1main, ProgressFrame.getInstance(sid));
在活动类中创建接口
- 活动代码
- 片段代码
也许这段代码会对您有所帮助。显示您的代码您做了什么?
private FragmentRefresh fragmentRefresh;
public interface FragmentRefresh{
void refresh(String data);
}
public void setFragmentListener(FragmentRefresh fr){
this.fragmentRefresh = fr;
}
// call interface function where ever you required
fragmentRefresh.refresh(data);
((YourActivity)getActivity).setFragmentListener(new FragmentRefresh(){
@Override
public void refresh(String data){
//use this data
}
});