Question

sorry for my low level of English. I have an activity that consists of a viewpager, 4 ListView listview. How could i implement a listener to know which item is touched by the user? I searched the web all day long unsuccessfully

Code snippets:

public class Local_mostrar_menuActivity extends ActionBarActivity {

private ViewPager viewPager;
private ListView page1;
private ListView page2;
private ListView page3;
private ListView page4;
ArrayList<ItemListView> itemsListVMenuBEBIDAS = obtenerItemsMenuBEBIDAS();
ItemListViewAdapter adapterlistvMenuBEBIDAS = new ItemListViewAdapter(this,     
itemsListVMenuBEBIDAS);
ArrayList<ItemListView> itemsListVMenuPRIMEROS = obtenerItemsMenuPRIMEROS();
ItemListViewAdapter adapterlistvMenuPRIMEROS = new ItemListViewAdapter(this, itemsListVMenuPRIMEROS);

ArrayList<ItemListView> itemsListVMenuSEGUNDOS = obtenerItemsMenuSEGUNDOS();
ItemListViewAdapter adapterlistvMenuSEGUNDOS = new ItemListViewAdapter(this, itemsListVMenuSEGUNDOS);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_local_mostrar_menu);

continue: //viewpagerindicator viewpager viewPager = (ViewPager) findViewById(R.id.pager); viewPager.setAdapter(new MainPageAdapter());

            TitlePageIndicator titleIndicator = (TitlePageIndicator)findViewById(R.id.indicator);

            //TabPageIndicator titleIndicator = (TabPageIndicator)findViewById(R.id.indicator);
            titleIndicator.setViewPager(viewPager);     
            titleIndicator.setOnPageChangeListener(new OnPageChangeListener() {

                @Override
                public void onPageSelected(int position)
                {

                }

                @Override
                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
                {

                }

                @Override
                public void onPageScrollStateChanged(int state)
                {

                }
            });     




}

//ActionBar
@Override
public boolean onCreateOptionsMenu(Menu menu) {

@Override
public boolean onOptionsItemSelected(MenuItem item) {

@Override
public boolean onPrepareOptionsMenu(Menu menu) {

@Override
protected void onPostCreate(Bundle savedInstanceState) {

@Override
public void onConfigurationChanged(Configuration newConfig) {

//Viewpager
class MainPageAdapter extends PagerAdapter
{

    @Override
    public CharSequence getPageTitle(int position) 
    {
        String title = null;

        switch (position)
        {
        case 0:
            title = "Bebida";
            break;
        case 1:
            title = "Primeros";
            break;
        case 2:
            title = "Segundos";
            break;

        default:
            title = "Postre o café";
            break;
        }
        return title;
    }

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

    @Override
    public Object instantiateItem(ViewGroup collection, final int position)
    {
        View page = null;
        switch (position)
        {
        case 0:
            if (page1 == null)
            {
                page1 = (ListView) LayoutInflater.from(Local_mostrar_menuActivity.this).inflate(R.layout.page_one_viewpager_listview, null);
                page1.setAdapter(adapterlistvMenuBEBIDAS);


            }
            page = page1;
            break;
        case 1:
            if (page2 == null)
            {
                page2 = (ListView) LayoutInflater.from(Local_mostrar_menuActivity.this).inflate(R.layout.page_two_viewpager_listview, null);

                page2.setAdapter(adapterlistvMenuPRIMEROS);
            }
            page = page2;
            break;
        case 2:
            if (page3 == null)
            {
                page3 = (ListView) LayoutInflater.from(Local_mostrar_menuActivity.this).inflate(R.layout.page_three_viewpager_listview, null);

                page3.setAdapter(adapterlistvMenuSEGUNDOS);
            }
            page = page3;
            break;
        default:
            if (page4 == null)
            {
                page4 = (ListView) LayoutInflater.from(Local_mostrar_menuActivity.this).inflate(R.layout.page_four_viewpager_listview, null);
            }
            page = page4;
            break;
        }

        ((ViewPager) collection).addView(page, 0);

        return page;

    }

    @Override
    public boolean isViewFromObject(View view, Object object)
    {
        return view == object;
    }

    @Override
    public void destroyItem(View collection, int position, Object view)
    {
        ((ViewPager) collection).removeView((View) view);
    }
}
private ArrayList<ItemListView> obtenerItemsMenuBEBIDAS() {
    ArrayList<ItemListView> itemsMenuBEBIDAS = new ArrayList<ItemListView>();
    itemsMenuBEBIDAS.add(new ItemListView(1, "Cerveza DAMM Inedit", "La cerveza creada en El Bulli", "drawable/damm_inedit"));
    itemsMenuBEBIDAS.add(new ItemListView(1, "Tercio de cerveza DAMM", "330ml", "drawable/damm"));
    return itemsMenuBEBIDAS;
}
private ArrayList<ItemListView> obtenerItemsMenuPRIMEROS() {
    ArrayList<ItemListView> itemsMenuPRIMEROS = new ArrayList<ItemListView>();


    itemsMenuPRIMEROS.add(new ItemListView(1, "Ensalada cesar", "Lechuga, panecillos tostados,increible salsa cesar, tomate", "drawable/ensaladacesar01"));
    itemsMenuPRIMEROS.add(new ItemListView(2, "Ensalada del cheff", "Ensalada con una salsa secreta","drawable/ensaladadelchef01" ));

    return itemsMenuPRIMEROS;
}
// Añadiendo elementos al 
private ArrayList<ItemListView> obtenerItemsMenuSEGUNDOS() {
    ArrayList<ItemListView> itemsMenuSEGUNDOS = new ArrayList<ItemListView>();

    itemsMenuSEGUNDOS.add(new ItemListView(1, "Patatas con chorizo", "Finas patatas con chorizo manchego", "drawable/bravas01"));
    itemsMenuSEGUNDOS.add(new ItemListView(2, "Ternequeso", "Filete de ternera con mozzarella fundida y una salsa especial de tomate","drawable/calamares01" ));
    return itemsMenuSEGUNDOS;
}

}

Was it helpful?

Solution

you should set a click listener for each listView

for example:

page1.setOnItemClickListener(new OnItemClickListener(){
    do something
});

do it after you inflate the layout (if you are using fragment so on onViewCreated for example)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top