首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的动态放置的片段有什么问题?

我的动态放置的片段有什么问题?
EN

Stack Overflow用户
提问于 2016-04-23 04:58:18
回答 1查看 41关注 0票数 0

我想要将我的活动重写为对话框,并且我想以编程方式替换对话框。我尝试了统计片段,它工作得很好。当我以编程方式调用fragment并使用断点对其进行调试时,我不明白为什么它的生命周期从onCreate()开始,并以它结束……为什么来自onCreate()而不是来自onAttach(),就像我静态调用它一样?这是我的代码,请帮帮我!

base_activity.xml `

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/base_drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout

        android:id="@+id/base_fragment_holder"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </FrameLayout>

</android.support.v4.widget.DrawerLayout>

`

BaseActivity.java

代码语言:javascript
复制
    public class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.base_activity);

        DietsFragment dietsFragment = new DietsFragment();
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
        fragmentTransaction.replace(R.id.base_fragment_holder, dietsFragment);
        fragmentTransaction.commit();

    }
}

DietsFragment.java

代码语言:javascript
复制
public class DietsFragment extends Fragment
        implements AdapterView.OnItemClickListener,
        View.OnClickListener {
    public FragmentEventListener fragmentEventListener;

    Cursor diets;
    DietAdapter adapter;
    DietHelper helper;
    ListView listView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        View view = inflater.inflate(R.layout.activity_diets, container, false);

        listView = (ListView) view.findViewById(R.id.act_diets_lv_diets);
        if (listView != null) {
            listView.setOnItemClickListener(this);
        }

        FloatingActionButton floatingActionButton = (FloatingActionButton) view.findViewById(R.id.act_diets_fab);
        if (floatingActionButton != null)
            floatingActionButton.setOnClickListener(this);
        return view;
    }

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

        setHelper(new DietHelper(getActivity()));
        setDiets(getHelper().getAllTableRecordsCursor());
        setAdapter(new DietAdapter(getActivity(), getDiets()));
        listView.setAdapter(getAdapter());
        fragmentEventListener = (FragmentEventListener) getActivity();
    }

    public void setDiets (Cursor diets) {
        this.diets = diets;
    }

    public void setAdapter (DietAdapter adapter) {
        this.adapter = adapter;
    }

    public void setHelper (DietHelper helper) {
        this.helper = helper;
    }

    public Cursor getDiets() {
        return diets;
    }

    public DietAdapter getAdapter() {
        return adapter;
    }

    public DietHelper getHelper() {
        return helper;
    }
}

在DietsFragment和BaseActivity中,我隐藏了它OnClickListener、OnItemClickListener和FragmentEventListener的实现,因为当我用

EN

Stack Overflow用户

发布于 2016-04-24 18:47:13

我刚刚找到了我的错误。我在BaseActivity中重载了findViewbyId(int resId),以及我所有的问题,现在我在问自己为什么我重载了那个方法,我想用它做什么?

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36803202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档