0

首先,你必须原谅我,因为我的英语很差。
我将尝试解释这个问题:
我有一个ActionBarActivity有两页的 ( ViewPager)。
每个页面都有一个Fragment.
我的问题是:如何使用其中的每个元素FragmentActionBarActivity我的代码是这样的:

ActionBarActivity.java

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.manage_devices);


        mActionbar = getSupportActionBar();
        mActionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        mPager = (ViewPager) findViewById(R.id.pager);
        FragmentManager fm = getSupportFragmentManager();
        MyFragmentPagerAdapter fragmentPagerAdapter = new MyFragmentPagerAdapter(fm);
        mPager.setAdapter(fragmentPagerAdapter);
        mActionbar.setDisplayShowTitleEnabled(true);
        ActionBar.TabListener tabListener = new ActionBar.TabListener() {
            @Override
            public void onTabUnselected(Tab tab, FragmentTransaction ft) {}
            @Override
            public void onTabSelected(Tab tab, FragmentTransaction ft) {
                mPager.setCurrentItem(tab.getPosition());}
            @Override
            public void onTabReselected(Tab tab, FragmentTransaction ft) {}
        };
        mActionbar.addTab(mActionbar.newTab().setText("SENSORS").setTabListener(tabListener));
        mActionbar.addTab(mActionbar.newTab().setText("SIGNALS").setTabListener(tabListener));  


        /** Defining a listener for pageChange */
        ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener(){
                **@Override
                public void onPageSelected(int position) {
                        super.onPageSelected(position);
                        if(position == 0 & !hecho){
                        currView = mPager.getChildAt(mPager.getCurrentItem());
                        DevicesListView = (ListView) currView.findViewById(R.id.DevicesListView);
                        DevicesListView.setAdapter(DevicesAdapter);
                        DevicesListView.setOnItemClickListener(DeviceOnItemClickListener);
                        hecho = true;}
                        else if(!hecho){
                            mGraph = (GraphView)findViewById(R.id.graph);
                        }

                        mActionbar.setSelectedNavigationItem(position);
                }**

        };
        /** Setting the pageChange listener to the viewPager */
        mPager.setOnPageChangeListener(pageChangeListener);
}

为了得到一个Listview,我在OnPageSelected.
但这对我不利,因为我需要更改一个页面来获取Listview和构建它。

管理片段.java

public class ManageFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        Log.d("","Entra");
        return inflater.inflate(R.layout.manage_fragment, null);
    }
}

Listviewmanage_fragment布局中。
这会有所帮助:插图

非常感谢!!!

4

1 回答 1

0

如果您的片段已经创建,您可以在您的活动中使用 findViewById() 并找到您想要的视图。

因此,您应该通知您的活动,片段视图已经通过接口创建,例如:

@Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try {
            mListener = (OnViewCreatedListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement OnArticleSelectedListener");
        }
    }

然后在 Fragment 的 onCreateView 之后调用接口。

于 2014-02-08T18:52:32.787 回答