Autore Topic: Fragment corrente  (Letto 434 volte)

Offline auron86

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +1
    • Mostra profilo
Fragment corrente
« il: 12 Dicembre 2013, 14:51:21 CET »
0
salve sto tentando intercettare il fragment corrente, dopo uno scroll.


Attualmente ho inserito un Log, nella funzione getItem(), nella classe FragmentPagerAdapter, ma con pochi risultati.


QUello che mi servirebbe e intercettare la posizione del fragment, nell' adapter appena questo venga selezionato.

main.xml
Codice (XML): [Seleziona]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="#FFF"
   android:orientation="vertical" >

        <RelativeLayout
           android:id="@+id/barrasu"
           android:layout_width="fill_parent"
           android:layout_height="55dp"
           android:background="#9b0000" >

            <Button
               android:id="@+id/button1"
               android:layout_width="50dp"
               android:layout_height="50dp"
               android:layout_alignParentRight="true"
               android:layout_centerHorizontal="true"
               android:layout_centerInParent="true"
               android:layout_centerVertical="true"
               android:layout_gravity="right"
               android:layout_marginRight="15dp"
               android:background="@drawable/cerca_un" />
           
            </RelativeLayout>

    <LinearLayout
       android:id="@+id/homecentro"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:layout_marginBottom="50dp"
       android:orientation="vertical" >
       
        <android.support.v4.view.ViewPager
            android:id="@+id/colorevino"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="10dp"
            android:layout_weight="1" />

        <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:orientation="horizontal" >

            <Button
               android:id="@+id/secco"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:background="@drawable/secco"/>

                 <Button
                    android:id="@+id/spumante"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/spumante"/>

                 <Button
                    android:id="@+id/passito"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/passito"/>

                      <Button
               android:id="@+id/dolce"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
                  android:background="@drawable/dolce"/>
                      <Button
               android:id="@+id/amabile"
               android:layout_width="wrap_content"
                  android:background="@drawable/amabile"
                 
               android:layout_height="wrap_content"/>
                           <Button
               android:id="@+id/altro"
               android:layout_width="wrap_content"
                  android:background="@drawable/altro"
                 
               android:layout_height="wrap_content"/>
                           

        </LinearLayout>

    </LinearLayout>

   <RelativeLayout
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_gravity="center"
      android:layout_marginTop="-50dp"
      android:background="#9b0000" >

        <Button
           android:id="@+id/vino"
           android:layout_width="50dp"
           android:layout_height="50dp"
           android:layout_alignParentLeft="true"
           android:layout_centerInParent="true"
           android:layout_centerVertical="true"
           android:layout_marginLeft="15dp"
           android:background="@drawable/vino_un" />

        <Button
           android:id="@+id/piatto"
           android:layout_width="50dp"
           android:layout_height="50dp"
           android:layout_centerHorizontal="true"
           android:layout_centerInParent="true"
           android:layout_centerVertical="true"
           android:background="@drawable/cibo_un" />

        <Button
           android:id="@+id/mappa"
           android:layout_width="50dp"
           android:layout_height="50dp"
           android:layout_alignParentRight="true"
           android:layout_centerHorizontal="true"
           android:layout_centerInParent="true"
           android:layout_centerVertical="true"
           android:layout_marginRight="15dp"
           android:background="@drawable/map_un" />

            </RelativeLayout>
</LinearLayout>
dettaglioggetti.xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="wrap_content" >

    <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical" >

    <ImageView
       android:id="@+id/imgdettaglio"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center" />

    </LinearLayout>
</ScrollView>

main.java
Codice (Java): [Seleziona]
package it.viniitaliani;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

public class Main  extends FragmentActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
               
                /** Getting a reference to the ViewPager defined the layout file */
                ViewPager pager = (ViewPager) findViewById(R.id.colorevino);

                /** Getting fragment manager */
                FragmentManager fm = getSupportFragmentManager();

                /** Instantiating FragmentPagerAdapter */
                SceltaVinoPagerAdapter adapter = new SceltaVinoPagerAdapter(fm, 3,Main.this);

                /** Setting the pagerAdapter to the pager object */
                pager.setAdapter(adapter);
                 Log.i("aa",""+pager.getCurrentItem());
        }
       
       
        public void cambio_colore_barra(int indice){
                Log.i("ind", indice+"");
                RelativeLayout barrasu = (RelativeLayout) findViewById(R.id.barrasu);
                if (indice == 0)
                        barrasu.setBackgroundColor(Color.parseColor("#9b0000"));
                if (indice == 1)
                        barrasu.setBackgroundColor(Color.parseColor("#ffffc2"));
                if (indice == 2)
                        barrasu.setBackgroundColor(Color.parseColor("#ff6d60"));
                }
}

FragmentPagerAdapter
Codice (Java): [Seleziona]
package it.viniitaliani;

/**
 * Created by alessiopiromallo on 09/08/13.
 */


import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class SceltaVinoPagerAdapter extends FragmentPagerAdapter {

       
        // numero di oggetti in ogni catalogo viene passato da DettaglioActivity
        private static int PAGE_COUNT;
        private Main activity;
       
        public SceltaVinoPagerAdapter(FragmentManager fm, int numeroPagine,Main activity) {
                super(fm);
                this.PAGE_COUNT = numeroPagine;
                this.activity=activity;
        }

        @Override
        public Fragment getItem(int arg0) {
                activity.cambio_colore_barra(arg0);
                SceltaVino dettaglioOggetto = new SceltaVino();
                Bundle data = new Bundle();
                data.putInt("current_page", arg0);
                dettaglioOggetto.setArguments(data);
                return dettaglioOggetto;
        }

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

Post unito: 12 Dicembre 2013, 14:52:23 CET
quello che voglio fare e cambiare il colore della barra , in base al fragment selezionato... in totale sono 3