首页 > 代码库 > 新手求助:关于Activity间跳转的小问题
新手求助:关于Activity间跳转的小问题
============问题描述============
两个Activity,A和B。
A里边主要有一个listview,显示数据库里的东西;B由A跳转过来,里边有一些操作,2个按钮X和Y,X是直接返回A,Y是更新数据库然后返回A。
问题在这里:A跳转B时,没有使用finish(),这样X就可以finish()掉B直接就返回A了,A也不用重新绘制布局,这没问题。但是Y操作回到A我就不会了,这时回到A需要更新其中内容了(重新绘制布局)。我尝试用startActivityForResult来跳转,Y操作后在A的onActivityResult里执行更新listview的适配器,但是运行后A仍然没有发生刷新(但是onActivityResult里的Toast是执行了),也没报错。是我刷新listview的操作不对吗?
求指教
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==RESULT_OK){
Toast.makeText(this, "OK", Toast.LENGTH_SHORT).show();
myAdapter=new MyActivityAdapter(MyActivity.this,annList);
myAdapter.notifyDataSetChanged();
listview.setAdapter(myAdapter);
}
}
============解决方案1============
创建Adapter和setAdapter不要在OnActivityResult函数里调用,而是应该在onCreate里调用。
onActivityResult里只要修改数据对象annList,然后调用notifyDataSetChanged就可以。
============解决方案2============
这个无所谓 Adapter 的位置的,主要是你的 annList 是通过 getData()获取的,相当于一个新的 list, 因此你调用 notifyDataChange 的时候,数据其实是没有更新的,正确的使用方式是 annList.clear(); annList.addAll(getData());,myAdapter.notifyDataChanged();
新手求助:关于Activity间跳转的小问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。