多个registerForContextMenu(View v)处理

时间:2014-08-01 06:57:49

标签: android

我有4 * 7表,我想处理每个编辑文本,当用户点击第5个编辑文本足够长时间以便弹出菜单时,他可以选择他想要的颜色。

问题是我应该怎么做,我有4 * 7 edittexts所以我应该调用registerForContextMenu(View)28次,即使我这样做我怎样才能在onContextItemSelected(menuItem)中处理它?

我不想放置整个片段的视图,因为每次用户在菜单弹出的任何位置点击太长时间,所以我不想要这样。

编辑:

我在onCreateContextMenu中尝试了这个:

if(v.getId() == R.id.table_item1){

            Position = 1;

        }

并检查onContextItemSelected中的位置,有没有比这更好的方式/更快的方式?因为我需要把28放在那里:(

1 个答案:

答案 0 :(得分:0)

您可以为EditTexts edit1,edit2,edit3等命名。 然后你可以做一个循环

for(int i=1; i<=28; ++i) {
   int resId = getResources.getIdentifier("edit" + i, "id", getPackageName());
   EditText edt = (EditText)findViewById(resId);
   edt.registerForContextMenu(...)
}

和其他需要迭代EditText

的地方一样