为了账号安全,请及时绑定邮箱和手机立即绑定

在android中将数据从活动发送到片段

在android中将数据从活动发送到片段

白板的微信 2019-05-30 10:33:32
在android中将数据从活动发送到片段我有两个班。第一是活动,第二是片段,我有一些EditText。在活动中,我有一个带有异步任务和方法的子类。doInBackground我得到了一些结果,并将其保存到变量中。如何将这个变量从子类“MyActivity”发送到这个片段?
查看完整描述

4 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

从活动中发送数据的意图如下:

Bundle bundle = new Bundle();bundle.putString("edttext", "From Activity");
// set Fragmentclass ArgumentsFragmentclass fragobj = new Fragmentclass();fragobj.setArguments(bundle);

在片段onCreateView方法中:

@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    String strtext = getArguments().getString("edttext");    
    return inflater.inflate(R.layout.fragment, container, false);}


查看完整回答
反对 回复 2019-05-30
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

此外,您还可以从片段中访问活动数据:

活动:

public class MyActivity extends Activity {

    private String myString = "hello";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        ...
    }

    public String getMyData() {
        return myString;
    }}

碎片:

public class MyFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        MyActivity activity = (MyActivity) getActivity();
        String myDataFromActivity = activity.getMyData();
        return view;
    }}


查看完整回答
反对 回复 2019-05-30
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

“在Android中将数据从活动发送到碎片”。

活动:

        Bundle bundle = new Bundle();
        String myMessage = "Stackoverflow is cool!";
        bundle.putString("message", myMessage );
        FragmentClass fragInfo = new FragmentClass();
        fragInfo.setArguments(bundle);
        transaction.replace(R.id.fragment_single, fragInfo);
        transaction.commit();

碎片:

读取片段中的值

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Bundle bundle = this.getArguments();
        String myValue = bundle.getString("message");
        ...
        ...
        ...
        }

或者只是

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        String myValue = this.getArguments().getString("message");
        ...
        ...
        ...
        }


查看完整回答
反对 回复 2019-05-30
  • 4 回答
  • 0 关注
  • 571 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信