fragment.getview() null zurückgeben von Aktivität

Ich habe einen viewpager, dass die Gastgeber mehrere Fragmente. Einer von Ihnen, Frag1, soll erhalten, ein Objekt mit Daten und poplulate einige EditText mit diesen Daten.

Die Sache ist, wenn ich versuche, Zugriff auf das fragment von der Aktivität, getView() immer null zurück, so dass es unmöglich zu nennen Methoden der Frag1 Klasse. Ich bin mit LogCat zu prüfen, ob andere Variablen, die null sind, aber es scheint, dass das problem kommt von der getView() überprüfen.

Jede Idee, warum es null ist?

Tätigkeit code

   (...)

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

        mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager());

        final ActionBar actionBar = getActionBar();

        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setDisplayShowTitleEnabled(false);

        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mAppSectionsPagerAdapter);
        mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                //When swiping between different app sections, select the corresponding tab.
                //We can also use ActionBar.Tab#select() to do this if we have a reference to the
                //Tab.
                actionBar.setSelectedNavigationItem(position);
            }
        });

public static class AppSectionsPagerAdapter extends FragmentPagerAdapter {

        public AppSectionsPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int i) {
            switch (i) {
                case 0:
                    return new Frag1();

                case 1:
                    return new Frag2();

                case 2:
                    return new Frag1();

                case 3:
                    return new Frag1();

                default:
                    return new Frag1();
            }
        }

        @Override
        public int getCount() {
            return 4;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return "Section " + (position + 1);
        }
    }


    public void Populate(Patient patient) {
        Frag1 fragment = 
                  (Frag1) mAppSectionsPagerAdapter.getItem(0);

        Log.d(patient.getName(), "data check");
        Log.d(fragment.hello(), "fragment check");

        if (fragment.getView() == null) {
            Log.d("*** DEBUG ***", "found the problem champ");
        }

              if(fragment != null)  //could be null if not instantiated yet
              {
                 if(fragment.getView() != null) 
                 {
                    //no need to call if fragment's onDestroyView() 
                    //has since been called.
                    fragment.setName(patient.getName());
                    Log.d(patient.getName(), "supbrah");//do what updates are required
                 }
              }
    }

Fragment code

public class Frag1 extends Fragment {

EditText name;
Spinner spinner;
AutoCompleteTextView textView;
AutoCompleteTextView textView1;
Spinner spinner1;
AutoCompleteTextView textView2;
View v;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) {
    v = inflater.inflate(R.layout.activity_form, container, false);

    name = (EditText) v.findViewById(R.id.name_edit);

    return v;
}

public String hello() {
    return "sup brah";
}

public String getName() {
    String patient = name.getText().toString();
    return patient;
}

public void setName(String text) {
    name.setText(text, TextView.BufferType.EDITABLE);
}

}
InformationsquelleAutor JZweige | 2013-07-16
Schreibe einen Kommentar