Fragment && Activity生命周期

  • 今天写程序遇到一个问题,先上代码
private void initData() {
        // TODO Auto-generated method stub
        mDatas = new ArrayList<Bean>();
        SQLiteOpenHelper dbHelper = new DatabaseHelper(getActivity(), "friends.db", null, 1);
        SQLiteDatabase db = dbHelper.getWritableDatabase();
       // db.execSQL("delete from  festival where festival='阿斯顿'");
        Cursor cursor = db.rawQuery("select * from festival", null);
        while (cursor.moveToNext()) {
            String fes = cursor.getString(1);
            String dat = cursor.getString(2);
            //获取系统时间并组成字符串
            final Calendar ca1 = Calendar.getInstance();
            nYear = ca1.get(Calendar.YEAR);
            nMonth = ca1.get(Calendar.MONTH);
            nDay = ca1.get(Calendar.DAY_OF_MONTH);
            Snyear = String.valueOf(nYear);
            SnMonth = String.valueOf(nMonth + 1);
            Sndays = String.valueOf(nDay);
            if (nMonth >= 0 && nMonth <= 9) {
                j = Snyear + "0" + SnMonth + Sndays;
            } else {
                j = Snyear + SnMonth + Sndays;
            }
            String i = getDateCount(dat, j);
            Bean bean = new Bean(fes, dat, i);
            mDatas.add(bean);
        }

        adapter = new MyAdapter(getActivity(), mDatas, R.layout.timeline_item);
        listview.setAdapter(adapter);
    }
  • 将获取的时间和日期名称以及天数差放置于mDatas中,然后通过Cursor一组组取出来放置于listview中
  • 但是,有个问题。我在另一个activity中获取输入的数据insert进SQLite,但是在initData()中不会实时更新,因为它是先读取的listview再通过添加数据操作存入SQLite,所以并不会自动更新listview。
//将获取到的数据添加到数据库
        SQLiteOpenHelper dbHelper = new DatabaseHelper(this, "friends.db", null, 1);
        SQLiteDatabase db=dbHelper.getWritableDatabase();
        final ContentValues values = new ContentValues();
        String fes = dateTitle.getText().toString();
        values.put("festival",fes);
        values.put("time",i);
        db.insert("festival",null,values);
  • adapter.notifyDataSetChanged();我试了,但是它放在initData()中不会更新,因为我是往数据库中加,不是往mDatas中加,所以这个方法不成立
    例如这样放置的话就可以动态添加
-//        Button button = (Button) view.findViewById(R.id.button);
-//        button.setOnClickListener(new View.OnClickListener() {
-//            @Override
-//            public void onClick(View v) {
-//                Bean bean=new Bean("圣诞节", "2015-08-05", "1513");
-//                mDatas.add(bean);
-//                adapter.notifyDataSetChanged();
-//            }
-//        });
  • 所以我想啊,那么就重新加载 Activity,因为fragment是在activity中的,所以结束activity生命周期再重新Onstart它,那样重新加载listview不就能起到一个刷新的效果了嘛
  • 因此
//点击保存finish当前activity,跳转到bottom这个activity,在bottom跳转到这个页面时已经结束生命周期,所以这个跳转就是重新加载
        Intent intent = new Intent(this,bottom.class);
        startActivity(intent);
        finish();
        //finish的作用是结束当前生命周期
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值