所以我尝试在onContextItemSelected()上举杯,但它们没有起作用,但是在onCreateContextMenu()中,它们确实起作用,不确定为什么它不能重新识别所选项目?
public void loadText(int n){
for (int i = 0; i < n ; i++) {
iv = new TextView(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(2, 2, 2, 2);
iv.setLayoutParams(layoutParams);
iv.setText(SP.getString("time" + i, def));
iv.setTextSize(80);
main.addView(iv);
iv.setLongClickable(true);
iv.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
registerForContextMenu(v);
return false;
}
});
}
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.pop_up,menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.delete) {
Toast.makeText(this, "works", Toast.LENGTH_SHORT).show();
}
else if (id == R.id.edit) {
Toast.makeText(this, "works", Toast.LENGTH_SHORT).show();
}
return true;
}
这是菜单弹出文件
<item
android:id="@+id/delete"
android:title="delete"
android:orderInCategory="0"
/>
<item
android:id="@+id/edit"
android:title="edit"
android:orderInCategory="1"
/>
->