Android 将 View 作为对象传递给 fragment

标签 android android-fragments

我正在谷歌上搜索如何将简单的 view 作为对象传递给 fragment ,但我做不到。

例如在 MainActivity 中我有一个简单的 View :

TextView text = (TextView) findviewById(R.id.tv_text);

现在我想将其传递给 fragment 。下面的代码是我在 MainActivity 上的附加 fragment

主 Activity :

public void attachFragment() {
    fts = getActivity().getFragmentManager().beginTransaction();
    mFragment = new FragmentMarketDetail();
    fts.replace(R.id.cardsLine, mFragment, "FragmentMarketDetail");
    fts.commit();
}

这是我的 fragment :

public class FragmentMarketDetail extends Fragment implements ObservableScrollViewCallbacks {
    public static final String SCROLLVIEW_STATE = "scrollviewState";
    private ObservableScrollView scrollViewTest;
    private Context    context;
    private int scrollY;

    public static FragmentMarketDetail newInstance() {
        FragmentMarketDetail fragmentFirst = new FragmentMarketDetail();
        return fragmentFirst;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_online_categories, container, false);
        scrollViewTest = (ObservableScrollView) view.findViewById(R.id.scrollViewTest);
        scrollViewTest.setScrollViewCallbacks(this);
        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = getActivity().getBaseContext();
    }
}

最佳答案

以这种方式传递 View 不是好的做法。如果您想从 fragment 类中访问 Activity 中的 View ,请使用 getActivity() 访问 fragment 所附加的 Activity ,然后从那里找到您的 TextView。

TextView text = (TextView) getActivity().findViewById(R.id.tv_text);

关于Android 将 View 作为对象传递给 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38143950/

相关文章:

android - 如何在 Android 客户端应用程序上禁用 firebase 通知

java - 构建您的第一个应用程序 - Android

android - 是在 onActivityCreated() 之前还是之后调用 onDraw()?

android - 嵌套 fragment getchildfragmentmanager 导致崩溃

android - 动画结束后无法激活查看触摸事件

android - 如何使用 Intent 通过蓝牙 BLE 发送双 [] 数组 - Android Studio (API 17)

java - 如何从android中的游标检索数据?

android - 如何从另一个不是 fragment 的类更新 fragment

android - 一个 fragment 到另一个 fragment 的事务处理问题

java - 如何检测哪个 fragment 处于 Activity 状态?