首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每次更改EditTextvalue时,将值从活动传递到当前活动片段

每次更改EditTextvalue时,将值从活动传递到当前活动片段
EN

Stack Overflow用户
提问于 2019-01-20 07:15:49
回答 2查看 40关注 0票数 0

我正在制作机密的android应用程序,从一个月开始,我陷入了一个问题。情况如下。

,我有一个活动,其中一个片段显示了像olx这样的片段( Ads_display )上的广告,在工具栏中,我有一个城市搜索片段,用户可以在这里更改城市,当片段被创建时,它工作得非常好,但是在片段激活后,textView的更新值(我从城市搜索片段中获取textView值)在每次吐司时都不会被转移到Ads_display片段,每次它给我展示在创建片段时传递的旧城市名称,因为我不能在这里粘贴我的代码片段,因为我每天都在尝试一些东西。现在的情况是,我甚至不明白我做了什么。

请用你的宝贵答案帮助我解决这个问题,谢谢你的advanced.because,我已经达到了我的截止日期。

EN

Stack Overflow用户

发布于 2019-01-20 07:38:16

我本来会否决这个问题的,但你似乎处境艰难。

首先检查如何在片段之间传递数据:

以下是我要做的事:

代码语言:javascript
复制
 //Set the edit text on a changed listener
    editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {


            }

            @Override
            public void afterTextChanged(Editable s) {
                // Pass values from your fragment to your other fragment

        Bundle b = new Bundle();
    b.putString("city", s);

    FragmentB fragB = new FragmentB();
    fragB.setArguments(b); 
    getFragmentManager().beginTransaction().replace(R.id.your_container, fragB);

            }
        });





Then you have to receive your values in the fragment

    Bundle b = this.getArguments();
    if(b != null){
       String city = b.getString("city");
    }

如果搜索的值来自某个活动,那么只需将该值从该活动传递到该片段:

代码语言:javascript
复制
  editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {

        Bundle bundle = new Bundle();
        bundle.putString(s, "city");
        tab1.setArguments(bundle);


            }
        });

然后获取片段中的参数

代码语言:javascript
复制
       if (getArguments() != null) {
            String city = getArguments().getString("city);
       }

或者你可以使用一个接口,我看不到你的代码,所以我不能说哪一个最适合你。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54274361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档