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