如何在点击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

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

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //把item点击事件写到这里
            }
        });