如何在android中的同一活动上将textview从一个片段更新为另一个片段

时间:2015-08-27 21:26:32

标签: android android-fragments

我有单个Activity和2个片段.Tab屏幕分为2个部分.User Edit在editfield中按下按钮(来自FragmentA),然后应该在同一屏幕上的fragmentB上更新textview enter image description here < / p>

YourNewFragment ldf = new YourNewFragment();
        Bundle args = new Bundle();
        args.putString("YourKey", "YourValue");
        ldf.setArguments(args);

        // Inflate the fragment
        getFragmentManager().beginTransaction().add(R.id.container, ldf)
                .commit();

这里是Fragment B in new Fragment onCreateView:

String value = getArguments().getString("YourKey");

2 个答案:

答案 0 :(得分:3)

这样做的一种方法是在Fragment A上创建一个回调,它在Fragment B上触发一个方法。

片段A:

private FragmentCallback mCallback;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ...
    mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mCallback.buttonPressed(textView.getText().toString());
        }
    });

}

public void setCallback(FragmentCallback callback) {
    mCallback = callback;
} 

public interface FragmentCallback {
    void buttonPressed(String value);
}

片段B:

@Override
public void buttonPressed(String value) {
    // do something here with value
}

的活动:

fragmentA.setCallback(fragmentB);

确保Fragment B实现了FragmentCallback接口。

答案 1 :(得分:-1)

我之前做了类似的事情

TopActivity context = (TopActivity) this.getActivity();

我在一个片段中执行此操作,抓取对片段所在活动的引用,从此处我可以使用活动中的变量/函数。所以我用它将信息传递给另一个片段。