Update DropdownMenu.java

main
Sunique_L 2 years ago
parent 07facfedf0
commit b4d1e0cf7a

@ -1,61 +1,47 @@
/*
* 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();
mPopupMenu.getMenuInflater().inflate(menuId, mMenu);
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);
}
}
// 声明一个公开的类DropdownMenu此类属于net.micode.notes.ui包
public class DropdownMenu {
// 声明一个私有变量mButton类型为Button表示一个按钮对象
private Button mButton;
// 声明一个私有变量mPopupMenu类型为PopupMenu表示一个弹出菜单对象
private PopupMenu mPopupMenu;
// 声明一个私有变量mMenu类型为Menu表示一个菜单对象
private Menu mMenu;
// 声明一个公开的构造函数接受三个参数一个Context对象一个Button对象和一个int型数据menuId
public DropdownMenu(Context context, Button button, int menuId) {
// 将传入的button赋值给mButton即mButton就是我们操作的按钮对象
mButton = button;
// 为mButton设置背景资源这里是设置成dropdown_icon这个资源
mButton.setBackgroundResource(R.drawable.dropdown_icon);
// 创建一个新的PopupMenu对象传入上下文context和按钮mButton作为参数
mPopupMenu = new PopupMenu(context, mButton);
// 获取mPopupMenu的菜单对象并赋值给mMenu
mMenu = mPopupMenu.getMenu();
// 用传入的menuId来加载菜单项并添加到mMenu中
mPopupMenu.getMenuInflater().inflate(menuId, mMenu);
// 为mButton设置一个点击事件监听器当点击mButton时会执行show方法将弹出菜单显示出来
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mPopupMenu.show();
}
});
}
// 设置一个菜单项点击事件的监听器传入一个OnMenuItemClickListener对象作为参数
public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) {
// 如果mPopupMenu不为null就将监听器设置给mPopupMenu的菜单项点击事件监听器
if (mPopupMenu != null) {
mPopupMenu.setOnMenuItemClickListener(listener);
}
}
// 从mMenu中查找一个菜单项并返回该菜单项如果找到的话
public MenuItem findItem(int id) {
return mMenu.findItem(id);
}
// 设置mButton的文本内容为传入的CharSequence对象title
public void setTitle(CharSequence title) {
mButton.setText(title);
}
}
Loading…
Cancel
Save