ViewPager updated den View/XML Komponenten nicht Korrekt

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von flo.ei, 16.01.2012.

  1. flo.ei, 16.01.2012 #1
    flo.ei

    flo.ei Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    05.07.2011
    Hi,
    Ich habe nach dem tutorial auf tutsplus einen ViewPager integriert. Jetzt habe ich aber Das Problem, dass die XML Elemente auf den einzelnen Views zwar korrekt instantieert werden, ich jedoch keinerlei Listener darauf anwenden kann bzw. sie überhaupt referenzieren kann.

    Ein Button zb. kann nicht über seinen Variablennamen.setonclicklistener angesprochen werden.
    lege ich bereits in der XML android:onClick fest und definiere im Code lediglich die Methode funktioniert es einwandfrei.
    Da ich aber zb. noch einen Spinner verwende ist das keine Dauerlösung da ich den Spinner nicht über xml steuern kann.

    Hier ein bisschen Code zum Nachvollziehen:
    der PagerAdapter:
    Code:
    class MyPagerAdapter extends PagerAdapter {
    
        public int getCount() {
            return 3;
        }
    
        public Object instantiateItem(View collection, int position) {
    
            LayoutInflater inflater = (LayoutInflater) collection.getContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
            int resId = 0;
            switch (position) {
            case 0:
                resId = R.layout.settings_view;
    
                break;
            case 1:
                resId = R.layout.push_view;
                break;
            case 2:
                resId = R.layout.listen_view;
                break;
    
            }
            View view = inflater.inflate(resId, null);
    
            ((ViewPager) collection).addView(view, 0);
    
            return view;
    
    
        }
    
        @Override
        public void destroyItem(View arg0, int arg1, Object arg2) {
            ((ViewPager) arg0).removeView((View) arg2);
    
        }
    
        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            return arg0 == ((View) arg1);
    
        }
    
        @Override
        public Parcelable saveState() {
            return null;
        }
        public int getItemPosition(Object object) {
            return POSITION_NONE;
        }
    
    
    }
    Und hier die Implemtierung:
    Code:
    ViewPager myPager = (ViewPager)findViewById(R.id.pager);
            adapter = new MyPagerAdapter();
           myPager.setAdapter(adapter);
           myPager.setCurrentItem(0);
     Spinner spinner = (Spinner)listenView.findViewById(R.id.Dashboard_chooser);     Button push = (Button)pushview.findViewById(R.id.pushbutton);
      ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item, si);
    
    
                spinner.setAdapter(spinnerArrayAdapter);
    
    
    
    push.setOnClickListener(new OnClickListener() {
    
    
                public void onClick(View v) {
    
    //do something
    });

    Bevor ich den Viewpager implementiert habe hat übrigens alles einwandfrei funktioniert.
    Im Debuggmode sehe ich auch dass die buttons und spinner nicht mehr null sind.

    Wäre super wenn mir jemand weiterhelfen könnte.
    Gruß Flo
     

Diese Seite empfehlen