将数据从Fragment传递到它的Container Activity不起作用。有任何想法吗?

时间:2015-11-15 00:20:49

标签: java android android-fragments android-activity listener

我试图将可变数据传回Fragment的包含活动,但它似乎无法正常工作。

在片段中我有:

public class MainActivityFragment extends Fragment {

   public String profile_id;
   OnPassIdListener onPassIdListener;

   private FacebookCallback<LoginResult> mCallback = new FacebookCallback<LoginResult>() {
       @Override
        public void onSuccess(LoginResult loginResult) {

            ...

        }

            onPassIdListener.passId(profile_id);

        }

   public void onAttach(Context context) {
       super.onAttach(context);

        try {
            onPassIdListener = (OnPassIdListener) context;
        } catch (Exception ex) {

        }
    }

    public interface OnPassIdListener {
        void passId(String id);
    }

在容器活动中我有:

@Override
public void passId(String id) {

    TextView textview = (TextView) findViewById(R.id.prof_id_test);
    textview.setText(id);

}

然而,当调用textview.setText时,它被设置为null ...意味着该变量为空。

此外,我已经检查过变量实际上是否包含数据,然后才传递给活动,而且这样做必须与我传递它的方式有关。

有什么想法吗?提前感谢任何提示。

1 个答案:

答案 0 :(得分:0)

您可以将附加活动称为

ContainerActivity activity = (ContainerActivity) getActivity();

然后只使用他们的方法

activity.passId("");