我们可以从片段中访问其他片段布局吗?

时间:2015-10-28 16:21:03

标签: android android-fragments

[rootView is for this fragment and rootView1 is for another fragment

我可以使用给定片段中的其他片段布局。我试过用它。并且当我从其他片段布局的editText中获得价值时,没有出现任何错误。它显示为null。 Plzz解释了该怎么做。

1 个答案:

答案 0 :(得分:1)

Fragment之间进行通信的原型方法是使用interface通过附加到的Activity进行通信。例如(代码改编自Android文档Communicating With Other Fragments):

public class FragmentOne extends Fragment {
    FragmentOneCallback mCallback;

    // Container Activity must implement this interface
    public interface FragmentOneCallback {
        public String requestMessageFromFragmentTwo();
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);

        try {
            mCallback = (FragmentOneCallback) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString()
                    + " must implement FragmentOneCallback");
        }
    }
}

稍后在您的代码中,您将使用类似myTextView.setText(mCallback.requestMessageFromFragmentTwo())

的内容

Activity的示例实现可能是:

public class MainActivity extends AppCompatActivity implements FragmentOne.FragmentOneCallback {

    //...

    @Override
    public String requestMessageFromFragmentTwo() {
        String message = "";
        FragmentTwo fragmentTwo = (FragmentTwo) getSupportFragmentManager.findFragmentByTag("fragment_two_tag");
        if (fragmentTwo != null) message = fragmentTwo.getMessage();
        return message;
    }

FragmentTwo

public class FragmentTwo extends Fragment {

    //...

    public String getMessage() {
        return "This would be your message!";
    }
}

这是一个link to a sample app我为了一个类似的问题而放在一起,可能对你有用。