CoverFlow 'On item selected'

425 views Asked by At

I am knew to android studio (I have some limited knowledge in c# and c++) and have been basically learning as I go, which so far has been working OK. I am working with a coverflow example and after a lot of investigating I cannot work out where and how to set the equivalent of an 'on click listener'. The aim of this section is to select a random number based on the item that is selected.

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


import java.util.ArrayList;

import it.moondroid.coverflow.components.ui.containers.FeatureCoverFlow;

/**
 * A simple {@link Fragment} subclass.
 */
public class FitnessDiary_Fragment2 extends Fragment {

    Main2Activity mainActivity;

    public FitnessDiary_Fragment2() {
        // Required empty public constructor
    }


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

        ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(R.string.mooddiary_pagename);

        mainActivity = (Main2Activity)getActivity();
        mainActivity.coverFlow = (FeatureCoverFlow) view.findViewById(R.id.coverflow);

        settingDummyData();



        mainActivity.adapter = new CoverFlowAdapter(mainActivity, mainActivity.games);
        mainActivity.coverFlow.setAdapter(mainActivity.adapter);

        // Inflate the layout for this fragment
        return view;
    }

    private void settingDummyData() {
        mainActivity.games = new ArrayList<>();
        mainActivity.games.add(new Game(R.drawable.ic_temp, 
        "replacement1"));
        mainActivity.games.add(new Game(R.drawable.ic_temp, 
        "replacement2"));
        mainActivity.games.add(new Game(R.drawable.ic_temp, 
        "replacement3"));
        mainActivity.games.add(new Game(R.drawable.ic_temp, 
         "replacement4"));
    }

}

Due to working in fragments this is the 'main activity' that the above code is referencing, my suspicions are that I need the piece of code to be i the below section but i'm not sure.

    import com.github.jjobes.slidedatetimepicker.SlideDateTimeListener;
import com.github.jjobes.slidedatetimepicker.SlideDateTimePicker;
import com.ignitec.xxxxx.coverflow.CoverFlowAdapter;
import com.ignitec.xxxxx.coverflow.Game;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;

import it.moondroid.coverflow.components.ui.containers.FeatureCoverFlow;

public class Main2Activity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {

    public FeatureCoverFlow coverFlow;
    public CoverFlowAdapter adapter;
    public ArrayList<Game> games;

Thanks in advance!

1

There are 1 answers

0
charley On

Turns out it was as simple as creating an 'onScrollPositionListener', shame it took me a day to figure it out :).

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

        ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(R.string.mooddiary_pagename);

        mainActivity = (Main2Activity)getActivity();
        mainActivity.coverFlow = (FeatureCoverFlow) view.findViewById(R.id.coverflow);

        settingDummyData();

        mainActivity.adapter = new CoverFlowAdapter(mainActivity, mainActivity.games);
        mainActivity.coverFlow.setAdapter(mainActivity.adapter);


        mainActivity.coverFlow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //TODO CoverFlow item clicked
            }
        });

        mainActivity.coverFlow.setOnScrollPositionListener(new FeatureCoverFlow.OnScrollPositionListener() {
            @Override
            public void onScrolledToPosition(int position) {
                Log.e("Position----->", "" + position);
            }

            @Override
            public void onScrolling() {
                //TODO CoverFlow began scrolling
            }
        });



        // Inflate the layout for this fragment
        return view;
    }