通过Activity设置动态Fragment中的ListView(通过SimpleCursorAdapter适配)

  最近 博主在设计一个项目 ,通过activity 动态将   布局文件中的一块区域   动态的设定 为不同的Fragment ,现在面临的一种情况是 ,目前的Fragment中有一个button和一个ListView,要实现的效果是,点击Button时,系统会读取 数据库文件  ,从数据库中读取需要的 数据 在 这个Fragment中的ListView 上显示

  首先,数据库和各项信息都已经配置好 , 没有问题。

  刚开始的操作时,通过查询语句 获得 Cursor,通过SimpleCursorAdapter 来实现填充,代码如下:

首先获得ListView

lv =   getLayoutInflater().inflate(R.layout.ListView,null);
然后通过 下面代码进行填充

adapter = new SimpleCursorAdapter(word_activity.this,R.layout.wordlist
        ,cursor_c,new String[]{"word","shiyi"},new int[]{R.id.word_t,R.id.shiyi_t},
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
lv.setAdapter(adapter);
这里需要注意一下 , 如果要使用 Curcor进行填充的话,需要你 数据库中表 要包含 _id的列,这是必须的!

还需要注意的是  在填充期间  不能关闭 curcor  否则会造成 数据填充失败!


然后运行的结果是:curcor中有文件  ,但是 ListView中没有显示!


后面 看  Android Monitor 中 ,发现系统提示  ListView  指针是空的 怎么会呢?

然后 尝试了一下 ,利用 FragmentManager来获得 控件 ,代码如下:

FragmentManager fm = getFragmentManager();
final ListView lv = (ListView)fm.findFragmentById(R.id.word_main).
        getView().findViewById(R.id.word_list);
在进行测试 一切正常!!!!


分析:

  Inflater.inflate()是用来获取 布局文件的  这很重要 ,但是这个函数也仅仅是用来获取布局文件的  不能用来获取控件  一直都没有注意到 !

 获取控件 还是需要 通过 先获取 Fragment 然后逐步 获取 控件!

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值