我有3项活动A,B和C.
A是主要活动。 当按下按钮时,A将调用B和C
我在A
@SuppressWarnings("unchecked")
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
// Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.pager);
if(data!=null)
{
if(null!=data.getSerializableExtra("result"))
{
m_calPage.updateListview((ArrayList<ListType>) data.getSerializableExtra("result"));
}
}
}
B和C也与另一个OnActivityResult相关(称之为 Rel )
@SuppressWarnings("unchecked")
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1)
{
if(resultCode == -1)
{
updateListview((ArrayList<ListType>) data.getSerializableExtra("result"));
}
if(resultCode==0)
{
}
}
}
当B活动发生事件时(例如,在我按下Save按钮将数据发送回A的MainActivity之后)将调用Rel,反过来也会调用A中的OnActivityResult。
现在,如果我在C上发送一个事件来发送数据以更新A中的列表视图,我丢失了额外的数据,就像我曾经放入意图一样,它不会在屏幕上绘制。
我的updatelistview方法是这样编写的
public void updateListview(ArrayList<JEvents>lv)
{
m_eventAdapter.clear();
m_eventLst=lv;
m_eventAdapter=new JListAdapter(m_context, R.id.lvEvent, lv, gestureListener);
m_lvEvent.setAdapter(m_eventAdapter);
}
我有两个小问题
我无法调用m_eventAdapter.notifyDataSetChanged()
来重新绘制listview
,它只是对我不起作用,这就是为什么我必须重置适配器以显示所有项目。你知道为什么吗?
请帮我解决OnActivityResult,如上所述,检索从活动B和C发回的数据