weixin_51755348 2022-03-17 12:10 采纳率: 25%
浏览 96

如何在点击listview里面不同的item后跳出相同的菜单选项,但是点击菜单选项跳转的是item各自对应的页面

如图,在我点击第一个item后,弹出来menu菜单,点击查看详情后跳转到新的activity。但是无论我点击哪个item,经过menu菜单的点击“查看详情”还是只能跳出第一个item的内容。

img


img


img

xml文件
    <ListView
            android:id="@+id/listview"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        </ListView>

package com.example.listview;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
/**Map<String,Object>map;**/
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        int[] images=new int[]{R.drawable.meishi01,R.drawable.meishi02,R.drawable.meishi03,R.drawable.meishi04};
        String[] name=new String[]{"面包","沙拉","猪肉","鱼肉"};
        List<Map<String,Object>> listitem=new ArrayList<Map<String,Object>>();
        for(int i=0;i< images.length;i++){
            Map<String,Object> map= new HashMap<String,Object>();
            map.put("image",images[i]);
            map.put("name",name[i]);
            listitem.add(map);
        }
        SimpleAdapter adapter=new SimpleAdapter(this,listitem,R.layout.main,new String[]{"image","name"},new int[]{R.id.image,R.id.title});
        ListView listView=findViewById(R.id.listview);
        listView.setAdapter(adapter);
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long id) {
                Map<String,Object> map= (Map<String, Object>) adapterView.getItemAtPosition(position);
                registerForContextMenu(adapterView);
                openContextMenu(adapterView);
        /**        ContextMenu.
                switch (map.get(position).toString()){
                    case "0":

                        break;
                }**/
                return true;
            }
        });
    }
    final static  int Menu_Chakan= Menu.FIRST;
    final static  int Menu_shanchu=Menu.FIRST + 1;
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
     /**   menu.add(Menu.NONE,0,Menu.NONE,"查看详情");
        menu.add(Menu.NONE,0,Menu.NONE,"删除");**/
        menu.add(0,Menu_Chakan,1,"查看详情");
        menu.add(0,Menu_shanchu,2,"删除");
        super.onCreateContextMenu(menu, v, menuInfo);
    }
    @Override
    public boolean onContextItemSelected(@NonNull MenuItem item) {
        AdapterView.AdapterContextMenuInfo menuInfo= (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
       int position=menuInfo.position;
        switch (item.getItemId()){
            case Menu_Chakan:
                Intent intent=new Intent(MainActivity.this,ChakanActivity.class);
                startActivity(intent);
                break;
            default:break;
        }
        return super.onContextItemSelected(item);
    }
}

怎么样改才能从不同的item弹出来的选项里跳转到不同的activity
  • 写回答

2条回答 默认 最新

  • zqm930918 2022-03-17 13:31
    关注

    listView的item都有个postiton,根据这个来跳转不同activity

    评论

报告相同问题?

问题事件

  • 修改了问题 3月17日
  • 创建了问题 3月17日

悬赏问题

  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题