You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MiNote/micode/notes/ui/DropdownMenu.java

107 lines
3.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.micode.notes.ui;
import android.content.Context;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener;
import net.micode.notes.R;
/**
* @projectName项目名称: xiaomi label
* @package: ui
* @className类名称: DropdownMenu
* @description类描述: 声明一个下拉菜单
* @author创建人: zhangchaoqun
* @createDate创建时间: datetime
* @updateUser修改人: user
* @updateDate修改时间: datetime
* @updateRemark修改备注: 说明本次修改内容
* @version版本: v1.0
*/
public class DropdownMenu {
private Button mButton;
//声明一个下拉菜单
private PopupMenu mPopupMenu;
private Menu mMenu;
/**
* @description 描述:将菜单私有变量实例化
* @param 参数1:context上下文
* @param 参数2:button按钮
* @param 参数3:menuId菜单id
* @return 返回值:创建一个DropdownMenu实例对象
* @author zhangchaoqun
*/
public DropdownMenu(Context context, Button button, int menuId) {
mButton = button;
//设置这个view的背景
mButton.setBackgroundResource(R.drawable.dropdown_icon);
mPopupMenu = new PopupMenu(context, mButton);
mMenu = mPopupMenu.getMenu();
//MenuInflater是用来实例化Menu目录下的Menu布局文件
//根据ID来确认menu的内容选项
mPopupMenu.getMenuInflater().inflate(menuId, mMenu);
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mPopupMenu.show();
}
});
}
/**
* @description 描述:对非空的菜单的具体条目设置监听
* @param 参数1:listener
* @param 参数2:
* @param 参数3:
* @return 返回值:void
* @author zhangchaoqun
*/
public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) {
if (mPopupMenu != null) {
mPopupMenu.setOnMenuItemClickListener(listener);
}
}
//对于菜单选项的初始化,根据索引搜索菜单需要的选项
public MenuItem findItem(int id) {
return mMenu.findItem(id);
}
/**
* @description 描述:设置按钮的标题文本信息
* @param 参数1:title接口CharSequence的实例对象其实就是描述了一个string对象
* @param 参数2:
* @param 参数3:
* @return 返回值:
* @author zhangchaoqun
*/
public void setTitle(CharSequence title) {
mButton.setText(title);
}
}