activity A B C和startActivityForResult方法

时间:2014-04-06 15:51:18

标签: android listview android-activity

我有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);       
    }

我有两个小问题

  1. 我无法调用m_eventAdapter.notifyDataSetChanged()来重新绘制listview,它只是对我不起作用,这就是为什么我必须重置适配器以显示所有项目。你知道为什么吗?

  2. 请帮我解决OnActivityResult,如上所述,检索从活动B和C发回的数据

0 个答案:

没有答案