Autore Topic: Costruire una tabella di risultati dentro un fragment  (Letto 458 volte)

Offline aledpa

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
Costruire una tabella di risultati dentro un fragment
« il: 22 Gennaio 2014, 16:35:09 CET »
0
Salve a tutti,
sto cercando di realizzare un'app che contiente al suo interno diverse activity,
in una di queste uso dei fragment con la libreria sherlock,
questo è il codice:

Codice (Java): [Seleziona]
public class SerieA_Activity extends SherlockFragmentActivity {
       
        //costanti
        private final int SERIEA = 3;   //costanti che serve come ID per startActivity(int),
                                                                        //è lo stesso valore che in ActivityClientSceltaCategoria.java

        CollectionPagerAdapter mCollectionPagerAdapter;
    ViewPager mViewPager;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_serie_a);
    // Crea un adattatore che, quando richiesto, tornerà un fragment che rappresenta un oggetto della collezione.
       
    // ViewPager e i suoi adapter utilizzano support library fragment, quindi dobbiamo usare getSupportFragmentManager.
        mCollectionPagerAdapter = new CollectionPagerAdapter(getSupportFragmentManager());
    // Imposto la action bar.
        final ActionBar actionBar = getSupportActionBar();
    // Specifico che il tasto in alto a sinistra è cliccabile,
    // toccando il pulsante l'utente salirà di un gradino nella gerarchia dell'applicazione.
        actionBar.setDisplayHomeAsUpEnabled(true);
    // Imposto la ViewPager, attaccandogli gli adapter.
        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mCollectionPagerAdapter);
    }
   
    public class CollectionPagerAdapter extends FragmentStatePagerAdapter {
        final int NUM_ITEMS = 38; // numbero di tabs --> una per giornata, la serie A ne ha 38
       
        public CollectionPagerAdapter(FragmentManager fm) {
                super(fm);
        }
       
        @Override
        public Fragment getItem(int i) {
                Fragment fragment = new TabFragment();
                Bundle args = new Bundle();
                args.putInt(TabFragment.ARG_OBJECT, i);
                fragment.setArguments(args);
                return fragment;
        }

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

            public CharSequence getPageTitle(int position) {
                String tabLabel = null;
                // position contiene il numero del tab attivo (ovvero la giornata da visualizzare)
                // parte da 0, quindi per un totale di giornate - 1
                switch (position) {
                        case 0:
                                tabLabel = getString(R.string.giornata1);
                                TextView tv = (TextView) findViewById(R.id.textViewTab);
                                if(tv != null){    
                                tv.setOnClickListener(
                                        new View.OnClickListener() {
                                                @Override
                                                public void onClick(View v){
                                                        startSubActivity();
                                                }
                                        }
                                );
                        }      
                //              else
                //                      System.out.println("ERRORE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                Button b = (Button) findViewById(R.id.buttonProvaLogin);
                                if(b != null){
                                        b.setOnClickListener(
                                                new View.OnClickListener() {
                                                        @Override
                                                        public void onClick(View v){
                                                                startSubActivityLogin();
                                                        }
                                                }
                                        );
                                }      
                //        else
                //              System.out.println("ERRORE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                               
                                break;
                        case 1:
                                tabLabel = getString(R.string.giornata2);
                                break;
                        case 2:
                                tabLabel = getString(R.string.giornata3);
                                break;
                        case 3:
                                tabLabel = getString(R.string.giornata4);
                                break;
                        case 4:
                                tabLabel = getString(R.string.giornata5);
                                break;
                        case 5:
                                tabLabel = getString(R.string.giornata6);
                                break;
                        case 6:
                                tabLabel = getString(R.string.giornata7);
                                break;
                        case 7:
                                tabLabel = getString(R.string.giornata8);
                                break;
                        case 8:
                                tabLabel = getString(R.string.giornata9);
                                break;
                        case 9:
                                tabLabel = getString(R.string.giornata10);
                                break;
                        case 10:
                                tabLabel = getString(R.string.giornata11);
                                break;
                        case 11:
                                tabLabel = getString(R.string.giornata12);
                                break;
                        case 12:
                                tabLabel = getString(R.string.giornata13);
                                break;
                        case 13:
                                tabLabel = getString(R.string.giornata14);
                                break;
                        case 14:
                                tabLabel = getString(R.string.giornata15);
                                break;
                        case 15:
                                tabLabel = getString(R.string.giornata16);
                                break;
                        case 16:
                                tabLabel = getString(R.string.giornata17);
                                break;
                        case 17:
                                tabLabel = getString(R.string.giornata18);
                                break;
                        case 18:
                                tabLabel = getString(R.string.giornata19);
                                break;
                        case 19:
                                tabLabel = getString(R.string.giornata20);
                                break;
                        case 20:
                                tabLabel = getString(R.string.giornata21);
                                break;
                        case 21:
                                tabLabel = getString(R.string.giornata22);
                                break;
                        case 22:
                                tabLabel = getString(R.string.giornata23);
                                break;
                        case 23:
                                tabLabel = getString(R.string.giornata24);
                                break;
                        case 24:
                                tabLabel = getString(R.string.giornata25);
                                break;
                        case 25:
                                tabLabel = getString(R.string.giornata26);
                                break;
                        case 26:
                                tabLabel = getString(R.string.giornata27);
                                break;
                        case 27:
                                tabLabel = getString(R.string.giornata28);
                                break;
                        case 28:
                                tabLabel = getString(R.string.giornata29);
                                break;
                        case 29:
                                tabLabel = getString(R.string.giornata30);
                                break;
                        case 30:
                                tabLabel = getString(R.string.giornata31);
                                break;
                        case 31:
                                tabLabel = getString(R.string.giornata32);
                                break;
                        case 32:
                                tabLabel = getString(R.string.giornata33);
                                break;
                        case 33:
                                tabLabel = getString(R.string.giornata34);
                                break;
                        case 34:
                                tabLabel = getString(R.string.giornata35);
                                break;
                        case 35:
                                tabLabel = getString(R.string.giornata36);
                                break;
                        case 36:
                                tabLabel = getString(R.string.giornata37);
                                break;
                        case 37:
                                tabLabel = getString(R.string.giornata38);
                                break;
                        default:
                                Toast.makeText(SerieA_Activity.this, "Errore nell'individuare la giornata", Toast.LENGTH_SHORT).show();
                                finish();
                    }
                    return tabLabel;
                }
       
        public void startSubActivity() {
                Intent intent;
                String pkg=getPackageName();
                //per rendere univoci i nomi delle chiavi passate
                //è consigliato (la doc dice 'must') aggiungere il nome del package davanti al nome del parametro passato
                intent = new Intent(getBaseContext(), VisualizzaSquadra_Activity.class);
                intent.putExtra(pkg + ".indicazione_della_squadra", "Catania");      //inseriamo i dati nell'intent
                startActivity(intent);
            }
       
        public void startSubActivityLogin() {
                Intent intent;
                intent = new Intent(getBaseContext(), LoginActivity.class);
                startActivity(intent);
            }
    }

    public static class TabFragment extends Fragment {
        public static final String ARG_OBJECT = "object";
       
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                                                        //      DA MODIFICARE,vedere se servono 38 casi o 1 uguale per tutti
                Bundle args = getArguments();
                int position = args.getInt(ARG_OBJECT);

                int tabLayout = 0;
                switch (position) {
                        case 0:
                                tabLayout = R.layout.tab;
                                break;
                        case 1:
                                tabLayout = R.layout.tab;
                                break;
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                        case 6:
                        case 7:
                        case 8:
                        case 9:
                        case 10:
                        case 11:
                        case 12:
                        case 13:
                        case 14:
                        case 15:
                        case 16:
                        case 17:
                        case 18:
                        case 19:
                        case 20:
                        case 21:
                        case 22:
                        case 23:
                        case 24:
                        case 25:
                        case 26:
                        case 27:
                        case 28:
                        case 29:
                        case 30:
                        case 31:
                        case 32:
                        case 33:
                        case 34:
                        case 35:
                        case 36:
                        case 37:
                                tabLayout = R.layout.tab;
                                break;
                }
         
                View rootView = inflater.inflate(tabLayout, container, false);
         
                return rootView;
            }
       
    }

l'activity consiste di 38 diverse pagine scorrevoli con lo swipe;
in ciascuna delle 38 vorrei realizzare una tabella che contiene un elenco di elementi cliccabili, scaricabili tramite richiesta ad un server (parte già realizzata e non un problema);
mi chiedevo dove devo inserire questa tabella e le relative chiamate al server;
vedendo dal codice che ho postato ho fatto delle prove con un bottone e una textview, li in quella posizione è corretto o devo trovare un'altra strada?
Una cosa strana che per ora accade con questi due elementi di prova è che all'apertura della activity se clicco in essi non succede niente (levando i due commenti dai system.out.println all'apertura vengono scritti sul logcat) mentre se faccio uno swipe e poi torno indietro funzionano
« Ultima modifica: 22 Gennaio 2014, 16:37:16 CET da aledpa »