- list = new ArrayList<HashMap<String,String>>();
- HashMap<String,String> map = new HashMap<String,String>();
- map.put("menuItemName", "文件");
- list.add(map);
- HashMap<String,String> map2 = new HashMap<String,String>();
- map2.put("menuItemName", "设置墙纸1");
- list.add(map2);
- HashMap<String,String> map3 = new HashMap<String,String>();
- map3.put("menuItemName", "设置墙纸2");
- list.add(map3);
- HashMap<String,String> map4 = new HashMap<String,String>();
- map4.put("menuItemName", "设置快捷1");
- list.add(map4);
- HashMap<String,String> map5 = new HashMap<String,String>();
- map5.put("menuItemName", "设置快捷2");
- list.add(map5);
- HashMap<String,String> map6 = new HashMap<String,String>();
- map6.put("menuItemName", "设置快捷3");
- list.add(map6);
- HashMap<String,String> map7 = new HashMap<String,String>();
- map7.put("menuItemName", "退出");
- list.add(map7);
- myButton = (Button)findViewById(R.id.myButton);
- myButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if(state == 1) {
- state = 0;
- pop.dismiss();
- }
- else if(state == 0) {
- // 弹出自定义的菜单
- layout = getLayoutInflater().inflate(R.layout.menu_layout, null);
- menulist = (ListView)layout.findViewById(R.id.menulist);
- SimpleAdapter listAdapter = new SimpleAdapter(Testflag.this,list,R.layout.menu_item,new String[]{"menuItemName"},new int[]{R.id.menuitem});
- menulist.setAdapter(listAdapter);
- pop = new PopupWindow(layout, myButton.getWidth(),getWindowManager().getDefaultDisplay().getHeight()/3+40);
- pop.update();
- //pop.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
- pop.setTouchable(true);
- pop.setOutsideTouchable(true);
- pop.setFocusable(true);
- pop.showAtLocation(layout, (Gravity.BOTTOM-myButton.getHeight())|Gravity.LEFT, 0, 2*myButton.getHeight());
- state = 1;
- pop.setTouchInterceptor(new OnTouchListener() {
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- if(event.getAction() == MotionEvent.ACTION_OUTSIDE) {
- pop.dismiss();
- return true;
- }
- return false;
- }
- });
- menulist.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> arg0, View arg1,
- int arg2, long arg3) {
- // TODO Auto-generated method stub
- switch(arg2) {
- case 0:
- Toast.makeText(getApplicationContext(), "显示所有文件", Toast.LENGTH_SHORT).show();
- pop.dismiss();
- break;
- case 1:
- pop.dismiss();
- Bitmap wall01 = getWallPaper01();
- setWallPaper(wall01);
- break;
- case 2:
- pop.dismiss();
- Bitmap wall02 = getWallPaper02();
- setWallPaper(wall02);
- break;
- case 3:
- Toast.makeText(getApplicationContext(), "设置快捷1", Toast.LENGTH_SHORT).show();
- pop.dismiss();
- break;
- case 4:
- Toast.makeText(getApplicationContext(), "设置快捷2", Toast.LENGTH_SHORT).show();
- pop.dismiss();
- break;
- case 5:
- Toast.makeText(getApplicationContext(), "设置快捷3", Toast.LENGTH_SHORT).show();
- pop.dismiss();
- break;
- case 6:
- Toast.makeText(getApplicationContext(), "退出", Toast.LENGTH_SHORT).show();
- pop.dismiss();
- break;
- }
- }
- });
- }
- }
- });
- //该片段来自于http://www.codesnippet.cn/detail/091020136315.html
来源: http://www.codesnippet.cn/detail/091020136315.html