3

我在片段中创建了一个视图

public static class GraphSectionFragment extends Fragment 
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) 
    {
        GraphView view = new GraphView(getActivity());
        view.setGraphType(GraphView.GraphType.Oscillator);          
        return view;
    }
}

现在我需要从主要活动中访问我的 GraphView 对象。我如何能?我以这种方式尝试过,但它不起作用。

GraphSectionFragment fr = (GraphSectionFragment) m_SectionsPagerAdapter.getItem(0);
View v = fr.getView();
GraphView graph = (GraphView)v;
graph.setData(0, m_DeviceThread.getRangeDataI());

m_SectionsPagerAdapter 是从 FragmentPagerAdapter 继承的类的对象。Fragment.getView 返回一些奇怪类的视图,而不是 GraphView。

4

2 回答 2

3

您将在此链接中得到答案。根据您的实现,您可以通过任何一种方式从活动中访问片段。

要在扩展 FragmentActivity 的类中获取片段实例:

MyclassFragment instanceFragment= (MyclassFragment)getSupportFragmentManager().findFragmentById(R.id.idFragment);

或者

要在扩展 Fragment 的类中获取片段实例:

MyclassFragment instanceFragment =
(MyclassFragment)getFragmentManager().findFragmentById(R.id.idFragment);
于 2012-12-06T04:21:05.220 回答
-1

您可以通过执行以下操作来检索您的活动:

(MyActivity)getActivity();

因此,如果您GraphView在类中设置为公共变量,您可以执行以下操作:

GraphView graph = ((MyActivity)getActivity()).myGraph;

或设置访问器功能:

GraphView graph = ((MyActivity)getActivity()).getGraphView();
于 2012-08-10T16:50:50.870 回答