哪里开始代码片段?

时间:2012-01-31 12:45:03

标签: android android-fragments android-viewpager

我不知道在哪里可以放置代码来启动片段。我有一个有碎片的viewpager,但他们什么都不做。例如:

我有类片段活动,它们是片段化的片段:

    public class FragmentosActivity extends FragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        super.setContentView(R.layout.fragmentos_layout);

        // Paginador
        this.inicializaPaginas();
        //ActionBar
        ActionBar actionBar = getSupportActionBar();
        actionBar.setTitle("Contoles");
        //CirculoProgreso
        setProgressBarIndeterminateVisibility(Boolean.FALSE);       

    }

    //Este metodo inicia todos los fragments
    private void inicializaPaginas() {      

         FragmentAdapter adapter = 
                    new FragmentAdapter(getSupportFragmentManager());
            adapter.addFragment(new Mapa());
            adapter.addFragment(new Cercanos());

            ViewPagerAdapter vadapter = new ViewPagerAdapter( this );

            ViewPager pager =
                (ViewPager)findViewById( R.id.viewpager );
            TitlePageIndicator indicator =
                (TitlePageIndicator)findViewById( R.id.indicator );
            pager.setAdapter( adapter );
            pager.setAdapter( vadapter );
            indicator.setViewPager( pager );

    }

}

这里我称之为cercanos.class 在cercanos我有

public class Cercanos extends ListFragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (container == null) {
        return null;
    }

    return (LinearLayout) inflater.inflate(R.layout.cercanos, container, false);

}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     String[] objetos = {"hola","adios"};
        setListAdapter(new ArrayAdapter<String>(getActivity(),
                 android.R.layout.simple_list_item_1, objetos));

        Parseador.anadedatos(); 
        }

}

但永远不要进入oncreate方法的cercanos,为什么?我想我不了解碎片的所有用途。

2 个答案:

答案 0 :(得分:1)

仅在主要活动中调用,而不是在视图中调用

public class XXX extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
....
}
}

onCreate 是应用程序生命周期的一个片段,而不是类或视图生命周期

答案 1 :(得分:0)

您可以尝试覆盖此方法:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

并将onCreate代码放在这里。

无论如何,您可以查看文档,因为片段没有setContentView,在xml布局中您可以告诉哪些片段控制布局。 http://developer.android.com/guide/topics/fundamentals/fragments.html

希望这有帮助