当前位置: 首页 > 知识库问答 >
问题:

在GridView之后获取列表视图中单击的每个项目的位置

谢财
2023-03-14

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

有一个带有数组列表的对象,该对象也在数组列表中。网格视图显示列出数组列表的每个对象。显示 Listview 以列出对象中 arraylist 的每个项。

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

我有一个问题,如何获得gridview和list view的每个位置。

下面是最后一个意图中的代码。

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和ListView的位置以显示最后的意图。

共有1个答案

时经纬
2023-03-14
    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);

                 }
            });

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

 类似资料:
  • 我有一个从适配器展开的列表视图。当我点击其中一个按钮时,我得到了错误的项目。在我添加了< code>whatsApp按钮之前,它一直工作正常。 这是我的适配器: 在代码中添加了一个onClickListener,如果按下waze按钮,它将检查位置,如果按下whatsapp按钮,则检查名称。这是代码 如何更改此项以获得正确的项目?

  • 我有一个listView,它充满了字符串的数组列表,我想让它可点击...但我无法识别哪个项目被点击了 我做了这个,但没用! 有办法知道被点击的字符串吗?如果没有,是否有办法知道被点击项目的位置?

  • 我正在使用改造从REST服务获取数据。在接收json(对象列表)后,我想为列表上的每个位置获取位图。最好的方法是什么?我试图在改造后创建的可观察对象上使用地图/平面地图,但它不起作用(或者,可能是我做错了)。 改造接口方法: 使用方法: 当我试图使用平板地图()或地图()时,它总是返回一个列表,但我需要每个项目单独。 任何帮助都将不胜感激!

  • 我有一个方法返回一个

  • 我有一个带有textView的列表视图,每行都有一个按钮,我试图通过单击按钮而不是通过单击整行来获取文本view方法:(AdapterView arg0,View v,int position,long arg3)不适用于按钮单击。 这就是我如何通过单击列表视图的行来选择项目,但是,我想通过单击按钮而不是整行来选择项目:

  • 我创建了一个listview,其中包含一个textview和一个网格视图。网格视图项包含TextView。它看起来如下所示: 在gridview项的最上面的视图组中使用。 在包含GridView的viewgroup中使用。 在包含GridView的viewgroup中使用Android:focusable=“true”Android:focusableIntouchmode=“true”。 我还尝