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/doc/张硕-注释代码/ui/DropdownMenu.java

63 lines
2.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;
public class DropdownMenu {
private Button mButton; //声明一个按钮
private PopupMenu mPopupMenu; //声明一个下拉菜单
private Menu mMenu;//声明菜单
public DropdownMenu(Context context, Button button, int menuId) {
mButton = button;
mButton.setBackgroundResource(R.drawable.dropdown_icon);//设置背景
mPopupMenu = new PopupMenu(context, mButton);
mMenu = mPopupMenu.getMenu();//返回与此弹出窗口相关的菜单。在调用show()之前用项填充返回的Menu。返回:与此弹出窗口关联的菜单
mPopupMenu.getMenuInflater().inflate(menuId, mMenu);//返回:一个MenuInflater可用于将菜单项从XML扩展到getMenu()返回的菜单中。
mButton.setOnClickListener(new OnClickListener() {//注册一个回调,以便在单击此视图时调用。如果这个视图是不可点击的,它就变成了可点击的。
public void onClick(View v) {
mPopupMenu.show();
}//当视图被单击时调用
});
}
public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) {
if (mPopupMenu != null) {
mPopupMenu.setOnMenuItemClickListener(listener);
}//设置菜单的监听
}
public MenuItem findItem(int id) {
return mMenu.findItem(id);
}//对于菜单选项的初始化
public void setTitle(CharSequence title) {
mButton.setText(title);
}//布局文件并设置标题
}