繁体   English   中英

获取GridView之后在Listview中单击的每个项目的位置

[英]get position of each item clicked in Listview after GridView

我设计了GridView和List视图之间的意图。 当我单击gridview的项目时,将打开与listview相关的下一个意图。 然后,当我单击列表视图的项目时,将打开新的意图以显示与列表视图的每个项目相关的文本。

有一个带有arraylist的对象,该对象也在arraylist中。 Gridview显示为列出arraylist的每个对象。 Listview显示为列出对象中arraylist的每个项目。

我得到了第一个girdview和第一个listview的项目。

我有一个问题,如何获取gridview和list视图的每个位置。

这是下面最后目的的代码。

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

            switch (position){

                case 0:
                    Toast.makeText(getApplicationContext(),"London",Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent(MainActivity.this,AttactivePlacesActivity.class);
                    intent.putExtra("position_griditem_one",position);
                    startActivity(intent);
                    break;

                case 1:
                    Toast.makeText(getApplicationContext(),"Paris",Toast.LENGTH_SHORT).show();
                    startActivity(new Intent(MainActivity.this,AttactivePlacesActivity.class)
                            .putExtra("position_griditem_two",position));
                    break;

        }
    });

AttactivePlacesActivity

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

                switch(position){

                    case 0:
                        Toast.makeText(getApplicationContext(),"London Object",Toast.LENGTH_SHORT).show();
                        Intent intent = new Intent(AttactivePlacesActivity.this,AttactivePlaceObject.class);
                        intent.putExtra("position_listitem_one",position);
                        startActivity(intent);
                        break;

                    case 1: 
                        startActivity(new Intent(AttactivePlacesActivity.this,AttactivePlaceObject.class)
                                .putExtra("position_listitem_two",position));
                        break;


                }


            }
        });

AttactivePlaceObject

// get from a previous gridview to get each item of gridview
        GridView gridView = (GridView) findViewById(R.id.gridlist);

        // get from a previous listview to get each item of listview
        ListView listView = (ListView) findViewById(R.id.listviewAttactivePlaces);


        //gridView.getItemIdAtPosition();

        //listView.getItemIdAtPosition();


        ImageView attractivePlaceImage = (ImageView) findViewById(R.id.attractive_place_image);

        TextView attractivePlaceInformation = (TextView) findViewById(R.id.attractive_place_detailed_information);


        ImageView location = (ImageView) findViewById(R.id.location_icon);


        attractivePlaceImage.setImageResource(
                cityAttactivePlaces.get(0).getAttactivePlaces().get(0).getmAttaticePlaceImageResourceId());


        attractivePlaceInformation.setText(cityAttactivePlaces.get(0).getAttactivePlaces().get(0).getPlaceDetailInformation());

我的目标当我单击“伦敦”时,将列出伦敦的景点。 当我单击巴黎时,将列出巴黎的景点。 单击任何城市的任何景点,详细信息将显示为“最后意图”。

如何获取gridview和listviews的位置以显示最后的意图。

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                       Toast.makeText(getApplicationContext(),position+"",Toast.LENGTH_SHORT).show();

Intent intent = new Intent(AttactivePlacesActivity.this,AttactivePlaceObject.class);
                        intent.putExtra("position",position);
                        startActivity(intent);

                 }
            });

注-意图应该由活动发送,并且必须由活动接收。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM