0

当以编程方式创建一个包含视图的片段时,必须始终扩展片段类并覆盖 OnCreateView 方法。有没有另一种更简单的方法来做到这一点(比如创建一个片段并将其传递给视图 ID 或其他东西)。

谢谢

4

1 回答 1

0

似乎是真的,它需要创建分离的类扩展一个片段。但是您仍然可以将 viewId 作为参数传递。系统要求能够在必要时重新实例化片段。我会这样做:

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class ViewFragment extends Fragment {

    public static final ViewFragment newInstance(int contentId) {
        Bundle args = new Bundle();
        args.putInt("contentId", contentId);
        ViewFragment fragment = new ViewFragment();
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Bundle args = getArguments();
        int contentId = args.getInt("contentId");
        return inflater.inflate(contentId, container, false);
    }
}
于 2012-09-13T18:40:38.910 回答