(Android)在一组对象上实现滑动手势

(Android)在一组对象上实现滑动手势,android,android-studio,swipe,swipe-gesture,Android,Android Studio,Swipe,Swipe Gesture,*更新->滑动手势现在可以工作了(类“PieceViewFragment”和“OnSwipeTouchListener”已相应更新),但我真的很想获得从一个项目滑动到另一个项目时获得的良好视觉效果(移动)。现在,它只是切换到下一个或上一个项目。 *新更新->我能够获得从一个项目切换到另一个项目时获得的良好视觉效果(移动)(感谢Nobby_Nobody的最后评论和链接)。 在此处获取代码–> 我需要帮助通过Android personnal项目(库存列表)中的项目集合实现滑动手势。我已经看到了

*更新->滑动手势现在可以工作了(类“PieceViewFragment”和“OnSwipeTouchListener”已相应更新),但我真的很想获得从一个项目滑动到另一个项目时获得的良好视觉效果(移动)。现在,它只是切换到下一个或上一个项目。


*新更新->我能够获得从一个项目切换到另一个项目时获得的良好视觉效果(移动)(感谢Nobby_Nobody的最后评论和链接)。

在此处获取代码–>


我需要帮助通过Android personnal项目(库存列表)中的项目集合实现滑动手势。我已经看到了很多例子,但我似乎无法正确地实现它

应用程序很简单。它只是一个清单(InventairesPieces),实现为项目(PieceModel)的滚动列表(InventairesPiecesActivity和InventairesPiecesFragment),单击一个项目后,详细信息(PieceViewActivity和PieceViewFragment)将在另一个活动中打开

在详细信息活动(PieceViewActivity和PieceViewFragment)中,我希望能够滑动accross项,而不是每次都返回滚动列表

到目前为止,我尝试将“ViewPager”设置为一个适配器,该适配器在我的片段(PieceViewFragment)上扩展FragmentStatePagerAdapter,但它不能正常工作:

*单击项目时,无论单击哪个项目,都会显示列表中的第一个项目。动作栏中的标题也不匹配*

下面是“PieceViewActivity”类:

}

下面是“PieceViewFragment”类(详细信息或卡片):

}

下面是“InventairesPiecesFragment”类,单击滚动列表中的项目:

public class InventairePiecesFragment extends Fragment{

private ArrayAdapter<PieceModel> inventairePiecesAdapter;

private InventairePieces inventairePieces;

private PieceModel piece;

private Bundle bundle;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

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

    FloatingActionButton fab = (FloatingActionButton) container.findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getActivity(), PieceEditActivity.class);
            intent.putExtra("piece", piece);
            intent.putExtra("inventairePieces", inventairePieces);
            startActivityForResult(intent, 1);
        }
    });

    inventairePieces = new InventairePieces(new ArrayList<PieceModel>());
    this.readInventairePiece();

    inventairePiecesAdapter = new ArrayAdapter<>(
            getActivity(),
            R.layout.liste_pieces_inventaire,
            R.id.liste_pieces_inventaire_textview,
            inventairePieces.getInventairePieces());

    View rootView = inflater.inflate(R.layout.fragment_pieces_inventaire, container, false);

    ListView inventairePiecesAdapterView = (ListView) rootView.findViewById(R.id.listview_pieces_inventaire);
    inventairePiecesAdapterView.setAdapter(inventairePiecesAdapter);

    inventairePiecesAdapterView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            piece = inventairePiecesAdapter.getItem(i);
            Intent intent = new Intent(getActivity(), PieceViewActivity.class);
            intent.putExtra("inventairePieces", inventairePieces);
            intent.putExtra("posClicked", i);
            startActivityForResult(intent, 1);

            Log.v("short clicked","pos: " + i);
        }
    });
    inventairePiecesAdapterView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int i, long id) {
            piece = inventairePiecesAdapter.getItem(i);
            ConfirmeSuppDialogFragment dialogFrag = new ConfirmeSuppDialogFragment();
            bundle = new Bundle();
            bundle.putSerializable("piece",piece);
            bundle.putSerializable("inventairePieces",inventairePieces);
            dialogFrag.setArguments(bundle);
            dialogFrag.setTargetFragment(InventairePiecesFragment.this, 2);
            dialogFrag.show(getFragmentManager(), "dialog");

            Log.v("long clicked","pos: " + i);

            return true;
        }
    });


    return rootView;
}



@Override
public boolean onOptionsItemSelected(MenuItem item) {
    this.writeInventairePiece();
    return super.onOptionsItemSelected(item);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == 1) {
        piece = (PieceModel) data.getSerializableExtra("piece");
        inventairePieces.addToInventairePieces(piece);
        this.writeInventairePiece();
        inventairePiecesAdapter.notifyDataSetChanged();
        printConfirmerState(piece, "ajoutée");
    }
    else if(resultCode == 2){
        inventairePieces.removeFromInventairePieces(piece);
        this.writeInventairePiece();
        inventairePiecesAdapter.notifyDataSetChanged();
        printConfirmerState(piece, "supprimée");
    }
}

private void writeInventairePiece(){
    try {
        FileOutputStream outputFile = this.getContext().openFileOutput("InventairePiece.ser", Context.MODE_PRIVATE);
        ObjectOutputStream outputStream = new ObjectOutputStream(outputFile);
        outputStream.writeObject(inventairePieces);
        outputStream.close();
        outputFile.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

private void readInventairePiece(){
    try {
        FileInputStream inputFile = this.getContext().openFileInput("InventairePiece.ser");
        ObjectInputStream inputStream = new ObjectInputStream(inputFile);
        inventairePieces = (InventairePieces) inputStream.readObject();
        inputStream.close();
        inputFile.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

private void printConfirmerState(PieceModel piece, String state){
    String confirm = state;
    for(int i = 0; i < inventairePieces.getInventairePieces().size(); i++) {
        if(i == inventairePieces.getInventairePieces().indexOf(piece) && state.equals("ajoutée")) {
            confirm = ("La pièce '" + piece.getNomPiece() + "' est " + state + ".");
        }else if(i == inventairePieces.getInventairePieces().indexOf(piece) && state.equals("supprimée")) {
            confirm = ("La pièce '" + piece.getNomPiece() + "' est " + state + ".");
        }
    }
    Toast.makeText(getContext(), confirm, Toast.LENGTH_SHORT).show();
}


/*@Override
public void updateResult(int result) {
    this.result = result;
}*/
公共类InventairePiecesFragment扩展了片段{
私有阵列适配器inventairePiecesAdapter;
私人发明者发明者发明者;
私人模型件;
私有包;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
设置选项菜单(真);
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
FloatingActionButton fab=(FloatingActionButton)container.findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent Intent=新的Intent(getActivity(),PieceEditActivity.class);
意向。额外(“件”,件);
意向。额外(inventairePieces,inventairePieces);
startActivityForResult(意向,1);
}
});
inventairePieces=newinventairepieces(new ArrayList());
这个.readInventairePiece();
InventairEpieceAdapter=新阵列适配器(
getActivity(),
R.layout.liste\u pieces\u inventaire,
R.id.liste\u pieces\u inventaire\u textview,
getInventairePieces());
视图根视图=充气机。充气(R.layout.fragment\u parties\u inventaire,容器,false);
ListView inventairePiecesAdapterView=(ListView)rootView.findViewById(R.id.ListView\u pieces\u inventaire);
setAdapter(inventairePiecesAdapter);
inventairePiecesAdapterView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
单件=库存EPieceSadApter.getItem(i);
Intent Intent=新的Intent(getActivity(),PieceViewActivity.class);
意向。额外(inventairePieces,inventairePieces);
intent.putExtra(“posClicked”,i);
startActivityForResult(意向,1);
Log.v(“短按”,“位置:+i”);
}
});
inventairePiecesAdapterView.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView arg0、视图arg1、int i、长id){
单件=库存EPieceSadApter.getItem(i);
confirmSuppleDialogFragment dialogFrag=新的confirmSuppleDialogFragment();
bundle=新bundle();
bundle.putSerializable(“片段”,片段);
bundle.putSerializable(“inventairePieces”,inventairePieces);
dialogFrag.setArguments(bundle);
dialogFrag.setTargetFragment(InventairePiecesFragment.this,2);
显示(getFragmentManager(),“dialog”);
Log.v(“长点击”,“位置:+i”);
返回true;
}
});
返回rootView;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
此.writeInventAirPiece();
返回super.onOptionsItemSelected(项目);
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(resultCode==1){
piece=(PieceModel)data.getSerializableExtra(“piece”);
库存品。添加到库存品(件);
此.writeInventAirPiece();
inventairePiecesAdapter.notifyDataSetChanged();
打印确认状态(件号“ajoutée”);
}
else if(resultCode==2){
存货清单。从存货清单(件)中移除;
此.writeInventAirPiece();
inventairePiecesAdapter.notifyDataSetChanged();
打印确认状态(件号“Supplime”);
}
}
私有void writeInventairePiece(){
试一试{
FileOutputStream outputFile=this.getContext().openFileOutput(“InventairePiece.ser”,Context.MODE\u PRIVATE);
ObjectOutputStream outputStream=新的ObjectOutputStream(outputFile);
outputStream.writeObject(inventairePieces);
outputStream.close();
outputFile.close();
}捕获(例外情况除外){
例如printStackTrace();
public class PieceViewFragment extends Fragment {

protected OnSwipeTouchListener onSwipeTouchListener;

private InventairePieces inventairePieces;

private PieceModel piece;

private int positionClicked;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

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

    final View rootView = inflater.inflate(R.layout.fragment_piece_view, null, false);

    // receives the intent
    Intent intent = getActivity().getIntent();
    inventairePieces = (InventairePieces) intent.getSerializableExtra("inventairePieces");
    positionClicked = (int) intent.getSerializableExtra("posClicked");
    piece = inventairePieces.getInventairePieces().get(positionClicked);

    // sets the title in the action bar
    getActivity().setTitle(piece.getNomPiece());

    Log.v("Fragment", "Pos Clicked: " + positionClicked);
    Log.v("Fragment" , "Piece: " + piece.getNomPiece());
    Log.v("Fragment", "Inventaire: " + inventairePieces.getInventairePieces().size());

    // the item card
    ((TextView) rootView.findViewById(R.id.codePiece_text)).setText(String.valueOf("# " + piece.getCodePiece()));
    ((TextView) rootView.findViewById(R.id.nomPiece_text)).setText(piece.getNomPiece());
    ((TextView) rootView.findViewById(R.id.descriptionPiece_text)).setText(piece.getDescriptionPiece());
    ((TextView) rootView.findViewById(R.id.dimensionPiece_text)).setText(String.valueOf(piece.getDimensionPiece()) + " mm");
    ((TextView) rootView.findViewById(R.id.prixCoutantPiece_text)).setText(String.valueOf(piece.getPrixCoutantPiece()) + " $");
    ((TextView) rootView.findViewById(R.id.qtyPiece_text)).setText(String.valueOf(piece.getQtyPiece()));
    ((TextView) rootView.findViewById(R.id.typePiece_text)).setText(piece.getTypePiece());
    ((TextView) rootView.findViewById(R.id.categoriePiece_text)).setText(piece.getCategoriePiece());

    rootView.setOnTouchListener(new OnSwipeTouchListener(getContext()){
        @Override
        public void onSwipeRight() {
            super.onSwipeRight();
            Log.v("Fragment", "onSwipeRight - ");
            if (positionClicked > 0) {
                positionClicked--;
                piece = inventairePieces.getInventairePieces().get(positionClicked);

                // sets the title in the action bar
                getActivity().setTitle(piece.getNomPiece());

                // the item card
                ((TextView) rootView.findViewById(R.id.codePiece_text)).setText(String.valueOf("# " + piece.getCodePiece()));
                ((TextView) rootView.findViewById(R.id.nomPiece_text)).setText(piece.getNomPiece());
                ((TextView) rootView.findViewById(R.id.descriptionPiece_text)).setText(piece.getDescriptionPiece());
                ((TextView) rootView.findViewById(R.id.dimensionPiece_text)).setText(String.valueOf(piece.getDimensionPiece()) + " mm");
                ((TextView) rootView.findViewById(R.id.prixCoutantPiece_text)).setText(String.valueOf(piece.getPrixCoutantPiece()) + " $");
                ((TextView) rootView.findViewById(R.id.qtyPiece_text)).setText(String.valueOf(piece.getQtyPiece()));
                ((TextView) rootView.findViewById(R.id.typePiece_text)).setText(piece.getTypePiece());
                ((TextView) rootView.findViewById(R.id.categoriePiece_text)).setText(piece.getCategoriePiece());

                Log.v("Fragment", "Pos Clicked: " + positionClicked);
                Log.v("Fragment" , "Piece: " + piece.getNomPiece());
                Log.v("Fragment", "Inventaire: " + inventairePieces.getInventairePieces().size());
            }
        }
        @Override
        public void onSwipeLeft() {
            super.onSwipeLeft();
            Log.v("Fragment", "onSwipeLeft + ");
            if(positionClicked < inventairePieces.getInventairePieces().size()-1) {
                positionClicked++;
                piece = inventairePieces.getInventairePieces().get(positionClicked);

                // sets the title in the action bar
                getActivity().setTitle(piece.getNomPiece());

                // the item card
                ((TextView) rootView.findViewById(R.id.codePiece_text)).setText(String.valueOf("# " + piece.getCodePiece()));
                ((TextView) rootView.findViewById(R.id.nomPiece_text)).setText(piece.getNomPiece());
                ((TextView) rootView.findViewById(R.id.descriptionPiece_text)).setText(piece.getDescriptionPiece());
                ((TextView) rootView.findViewById(R.id.dimensionPiece_text)).setText(String.valueOf(piece.getDimensionPiece()) + " mm");
                ((TextView) rootView.findViewById(R.id.prixCoutantPiece_text)).setText(String.valueOf(piece.getPrixCoutantPiece()) + " $");
                ((TextView) rootView.findViewById(R.id.qtyPiece_text)).setText(String.valueOf(piece.getQtyPiece()));
                ((TextView) rootView.findViewById(R.id.typePiece_text)).setText(piece.getTypePiece());
                ((TextView) rootView.findViewById(R.id.categoriePiece_text)).setText(piece.getCategoriePiece());

                Log.v("Fragment", "Pos Clicked: " + positionClicked);
                Log.v("Fragment" , "Piece: " + piece.getNomPiece());
                Log.v("Fragment", "Inventaire: " + inventairePieces.getInventairePieces().size());
            }
        }
    });

    return rootView;
}
public class OnSwipeTouchListener implements View.OnTouchListener {

private GestureDetector gestureDetector;

public OnSwipeTouchListener(Context c) {
    gestureDetector = new GestureDetector(c, new GestureListener());
}

public boolean onTouch(final View view, final MotionEvent motionEvent) {
    return gestureDetector.onTouchEvent(motionEvent);
}

private final class GestureListener extends GestureDetector.SimpleOnGestureListener {

    private static final int SWIPE_THRESHOLD = 100;
    private static final int SWIPE_VELOCITY_THRESHOLD = 100;

    @Override
    public boolean onDown(MotionEvent e) {
        return true;
    }

    // Determines the fling velocity and then fires the appropriate swipe event accordingly
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        boolean result = false;
        try {
            float diffY = e2.getY() - e1.getY();
            float diffX = e2.getX() - e1.getX();
            if (Math.abs(diffX) > Math.abs(diffY)) {
                if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
                    if (diffX > 0) {
                        onSwipeRight();
                    } else {
                        onSwipeLeft();
                    }
                }
            } else {
                if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
                    if (diffY > 0) {
                        onSwipeDown();
                    } else {
                        onSwipeUp();
                    }
                }
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return result;
    }
}

public void onSwipeRight() {
}

public void onSwipeLeft() {
}

public void onSwipeUp() {
}

public void onSwipeDown() {
}
public class InventairePiecesFragment extends Fragment{

private ArrayAdapter<PieceModel> inventairePiecesAdapter;

private InventairePieces inventairePieces;

private PieceModel piece;

private Bundle bundle;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

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

    FloatingActionButton fab = (FloatingActionButton) container.findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getActivity(), PieceEditActivity.class);
            intent.putExtra("piece", piece);
            intent.putExtra("inventairePieces", inventairePieces);
            startActivityForResult(intent, 1);
        }
    });

    inventairePieces = new InventairePieces(new ArrayList<PieceModel>());
    this.readInventairePiece();

    inventairePiecesAdapter = new ArrayAdapter<>(
            getActivity(),
            R.layout.liste_pieces_inventaire,
            R.id.liste_pieces_inventaire_textview,
            inventairePieces.getInventairePieces());

    View rootView = inflater.inflate(R.layout.fragment_pieces_inventaire, container, false);

    ListView inventairePiecesAdapterView = (ListView) rootView.findViewById(R.id.listview_pieces_inventaire);
    inventairePiecesAdapterView.setAdapter(inventairePiecesAdapter);

    inventairePiecesAdapterView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            piece = inventairePiecesAdapter.getItem(i);
            Intent intent = new Intent(getActivity(), PieceViewActivity.class);
            intent.putExtra("inventairePieces", inventairePieces);
            intent.putExtra("posClicked", i);
            startActivityForResult(intent, 1);

            Log.v("short clicked","pos: " + i);
        }
    });
    inventairePiecesAdapterView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int i, long id) {
            piece = inventairePiecesAdapter.getItem(i);
            ConfirmeSuppDialogFragment dialogFrag = new ConfirmeSuppDialogFragment();
            bundle = new Bundle();
            bundle.putSerializable("piece",piece);
            bundle.putSerializable("inventairePieces",inventairePieces);
            dialogFrag.setArguments(bundle);
            dialogFrag.setTargetFragment(InventairePiecesFragment.this, 2);
            dialogFrag.show(getFragmentManager(), "dialog");

            Log.v("long clicked","pos: " + i);

            return true;
        }
    });


    return rootView;
}



@Override
public boolean onOptionsItemSelected(MenuItem item) {
    this.writeInventairePiece();
    return super.onOptionsItemSelected(item);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == 1) {
        piece = (PieceModel) data.getSerializableExtra("piece");
        inventairePieces.addToInventairePieces(piece);
        this.writeInventairePiece();
        inventairePiecesAdapter.notifyDataSetChanged();
        printConfirmerState(piece, "ajoutée");
    }
    else if(resultCode == 2){
        inventairePieces.removeFromInventairePieces(piece);
        this.writeInventairePiece();
        inventairePiecesAdapter.notifyDataSetChanged();
        printConfirmerState(piece, "supprimée");
    }
}

private void writeInventairePiece(){
    try {
        FileOutputStream outputFile = this.getContext().openFileOutput("InventairePiece.ser", Context.MODE_PRIVATE);
        ObjectOutputStream outputStream = new ObjectOutputStream(outputFile);
        outputStream.writeObject(inventairePieces);
        outputStream.close();
        outputFile.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

private void readInventairePiece(){
    try {
        FileInputStream inputFile = this.getContext().openFileInput("InventairePiece.ser");
        ObjectInputStream inputStream = new ObjectInputStream(inputFile);
        inventairePieces = (InventairePieces) inputStream.readObject();
        inputStream.close();
        inputFile.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

private void printConfirmerState(PieceModel piece, String state){
    String confirm = state;
    for(int i = 0; i < inventairePieces.getInventairePieces().size(); i++) {
        if(i == inventairePieces.getInventairePieces().indexOf(piece) && state.equals("ajoutée")) {
            confirm = ("La pièce '" + piece.getNomPiece() + "' est " + state + ".");
        }else if(i == inventairePieces.getInventairePieces().indexOf(piece) && state.equals("supprimée")) {
            confirm = ("La pièce '" + piece.getNomPiece() + "' est " + state + ".");
        }
    }
    Toast.makeText(getContext(), confirm, Toast.LENGTH_SHORT).show();
}


/*@Override
public void updateResult(int result) {
    this.result = result;
}*/
position = getIntent().getIntExtra("posClicked");
public class PieceViewActivity extends AppCompatActivity {
    /**
     * The {@link android.support.v4.view.PagerAdapter} that will provide fragments representing
     * each object in a collection. We use a {@link android.support.v4.app.FragmentStatePagerAdapter}
     * derivative, which will destroy and re-create fragments as needed, saving and restoring their
     * state in the process. This is important to conserve memory and is a best practice when
     * allowing navigation between objects in a potentially large collection.
     */
    PieceViewPagerAdapter pieceViewPagerAdapter;

    /**
     * The {@link android.support.v4.view.ViewPager} that will display the object collection.
     */
    ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_piece_view);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.activity_piece_view_container, new PieceViewFragment())
                    .commit();

            // Create an adapter that when requested, will return a fragment representing an object in
            // the collection.
            pieceViewPagerAdapter = new PieceViewPagerAdapter(getSupportFragmentManager());
            // Set up the ViewPager, attaching the adapter.
            mViewPager = (ViewPager) findViewById(R.id.activity_piece_view_container);
            mViewPager.setAdapter(pieceViewPagerAdapter);

            //Receives the position of the item peviously clicked in the inventory list
            Intent intent = getIntent();
            mViewPager.setCurrentItem(intent.getIntExtra("posClicked", -1));
        }
    }

    /**
     * A {@link android.support.v4.app.FragmentStatePagerAdapter} that returns a fragment
     * representing an object in the collection.
     */
    public class PieceViewPagerAdapter extends FragmentStatePagerAdapter {

        //Accesses the InventairePieces class
        private InventairePieces inventairePieces;

        public PieceViewPagerAdapter(FragmentManager fm) {
            super(fm);

            Intent intent = getIntent();
            inventairePieces = (InventairePieces) intent.getSerializableExtra("inventairePieces");
        }

        /**
         * Gets the item position on swipe gestures
         * sends the detail fragment in a bundle
         * @param position the item position from swipe gesture
         * @return the new fragment details
         */
        @Override
        public Fragment getItem(int position) {
            Fragment fragment = new PieceViewFragment();
            Bundle args = new Bundle();
            args.putInt("position", position);
            fragment.setArguments(args);
            return fragment;
        }

        /**
         * Gets the size of the inventory from an intent
         * @return the size of the inventory
         */
        @Override
        public int getCount() {
            return inventairePieces.getInventairePieces().size();
        }
    }
}
public class PieceViewFragment extends Fragment {

    //Accesses the InventairePieces class
    private InventairePieces inventairePieces;
    //Accesses the PieceModel class
    private PieceModel piece;
    //The object's position in the inventory list
    private int positionClicked;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);

        //Gets the inventory from an intent
        Intent intent = getActivity().getIntent();
        positionClicked = intent.getIntExtra("posClicked", -1);
        inventairePieces = (InventairePieces) intent.getSerializableExtra("inventairePieces");
    }

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

        final View rootView = inflater.inflate(R.layout.fragment_piece_view, container, false);

        //Gets the item position from a bundle
        Bundle args = getArguments();

        if(args != null) {
            positionClicked = args.getInt("position");
            piece = inventairePieces.getInventairePieces().get(positionClicked);

            //Sets the object's details
            ((TextView) rootView.findViewById(R.id.invCount_text)).setText(String.valueOf("(" + (positionClicked + 1) + "/" + inventairePieces.getInventairePieces().size()) + ")");
            ((TextView) rootView.findViewById(R.id.codePiece_text)).setText(String.valueOf("# " + piece.getCodePiece()));
            ((TextView) rootView.findViewById(R.id.nomPiece_text)).setText(piece.getNomPiece());
            ((TextView) rootView.findViewById(R.id.descriptionPiece_text)).setText(piece.getDescriptionPiece());
            ((TextView) rootView.findViewById(R.id.dimensionPiece_text)).setText(String.valueOf(piece.getDimensionPiece()) + " mm");
            ((TextView) rootView.findViewById(R.id.prixCoutantPiece_text)).setText(String.valueOf(piece.getPrixCoutantPiece()) + " $");
            ((TextView) rootView.findViewById(R.id.qtyPiece_text)).setText(String.valueOf(piece.getQtyPiece()));
            ((TextView) rootView.findViewById(R.id.typePiece_text)).setText(piece.getTypePiece());
            ((TextView) rootView.findViewById(R.id.categoriePiece_text)).setText(piece.getCategoriePiece());
        }
        return rootView;
    }
}