您的位置:首页 > 其它

ContextMenuFragment使用分析menu dialog

2014-03-28 17:01 267 查看
public class FragmentContextMenu extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Create the list fragment and add it as our sole content.
ContextMenuFragment content = new ContextMenuFragment();
getFragmentManager().beginTransaction().add(android.R.id.content, content).commit();
}

public static class ContextMenuFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_context_menu, container, false);
registerForContextMenu(root.findViewById(R.id.long_press));
return root;
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(Menu.NONE, R.id.a_item, Menu.NONE, "Menu A");
menu.add(Menu.NONE, R.id.b_item, Menu.NONE, "Menu B");
}

@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.a_item:
Toast.makeText(getActivity(), "Item 1a was chosen", Toast.LENGTH_SHORT).show();
return true;
case R.id.b_item:
Toast.makeText(getActivity(), "Item 1b was chosen", Toast.LENGTH_SHORT).show();
return true;
}
return super.onContextItemSelected(item);
}
}
}


这个activity里面直接添加了一个fragment。fragment中的longpress响应,在oncreateview里面的这句话registerForContextMenu(root.findViewById(R.id.long_press));

为button注册了一个长按响应回调,响应回调的方法是onCreateContextMenu()。在回调里面添加了2个menu,而这2个的menu的点击响应方法是onContextItemSelected(),这个方法的监听注册应该是在父类中完成的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: