Fields Summary |
---|
private static final String | TAG |
private MenuItemImpl | mItemData |
private android.widget.ImageView | mIconView |
private android.widget.RadioButton | mRadioButton |
private android.widget.TextView | mTitleView |
private android.widget.CheckBox | mCheckBox |
private android.widget.TextView | mShortcutView |
private android.graphics.drawable.Drawable | mBackground |
private int | mTextAppearance |
private android.content.Context | mTextAppearanceContext |
private boolean | mPreserveIconSpacing |
private int | mMenuType |
private android.view.LayoutInflater | mInflater |
private boolean | mForceShowIcon |
Constructors Summary |
---|
public ListMenuItemView(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr, int defStyleRes)
super(context, attrs, defStyleAttr, defStyleRes);
final TypedArray a = context.obtainStyledAttributes(
attrs, com.android.internal.R.styleable.MenuView, defStyleAttr, defStyleRes);
mBackground = a.getDrawable(com.android.internal.R.styleable.MenuView_itemBackground);
mTextAppearance = a.getResourceId(com.android.internal.R.styleable.
MenuView_itemTextAppearance, -1);
mPreserveIconSpacing = a.getBoolean(
com.android.internal.R.styleable.MenuView_preserveIconSpacing, false);
mTextAppearanceContext = context;
a.recycle();
|
public ListMenuItemView(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr)
this(context, attrs, defStyleAttr, 0);
|
public ListMenuItemView(android.content.Context context, android.util.AttributeSet attrs)
this(context, attrs, 0);
|
Methods Summary |
---|
private android.view.LayoutInflater | getInflater()
if (mInflater == null) {
mInflater = LayoutInflater.from(mContext);
}
return mInflater;
|
public MenuItemImpl | getItemData()
return mItemData;
|
public void | initialize(MenuItemImpl itemData, int menuType)
mItemData = itemData;
mMenuType = menuType;
setVisibility(itemData.isVisible() ? View.VISIBLE : View.GONE);
setTitle(itemData.getTitleForItemView(this));
setCheckable(itemData.isCheckable());
setShortcut(itemData.shouldShowShortcut(), itemData.getShortcut());
setIcon(itemData.getIcon());
setEnabled(itemData.isEnabled());
|
private void | insertCheckBox()
LayoutInflater inflater = getInflater();
mCheckBox =
(CheckBox) inflater.inflate(com.android.internal.R.layout.list_menu_item_checkbox,
this, false);
addView(mCheckBox);
|
private void | insertIconView()
LayoutInflater inflater = getInflater();
mIconView = (ImageView) inflater.inflate(com.android.internal.R.layout.list_menu_item_icon,
this, false);
addView(mIconView, 0);
|
private void | insertRadioButton()
LayoutInflater inflater = getInflater();
mRadioButton =
(RadioButton) inflater.inflate(com.android.internal.R.layout.list_menu_item_radio,
this, false);
addView(mRadioButton);
|
protected void | onFinishInflate()
super.onFinishInflate();
setBackgroundDrawable(mBackground);
mTitleView = (TextView) findViewById(com.android.internal.R.id.title);
if (mTextAppearance != -1) {
mTitleView.setTextAppearance(mTextAppearanceContext,
mTextAppearance);
}
mShortcutView = (TextView) findViewById(com.android.internal.R.id.shortcut);
|
public void | onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo info)
super.onInitializeAccessibilityNodeInfo(info);
if (mItemData != null && mItemData.hasSubMenu()) {
info.setCanOpenPopup(true);
}
|
protected void | onMeasure(int widthMeasureSpec, int heightMeasureSpec)
if (mIconView != null && mPreserveIconSpacing) {
// Enforce minimum icon spacing
ViewGroup.LayoutParams lp = getLayoutParams();
LayoutParams iconLp = (LayoutParams) mIconView.getLayoutParams();
if (lp.height > 0 && iconLp.width <= 0) {
iconLp.width = lp.height;
}
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
public boolean | prefersCondensedTitle()
return false;
|
public void | setCheckable(boolean checkable)
if (!checkable && mRadioButton == null && mCheckBox == null) {
return;
}
// Depending on whether its exclusive check or not, the checkbox or
// radio button will be the one in use (and the other will be otherCompoundButton)
final CompoundButton compoundButton;
final CompoundButton otherCompoundButton;
if (mItemData.isExclusiveCheckable()) {
if (mRadioButton == null) {
insertRadioButton();
}
compoundButton = mRadioButton;
otherCompoundButton = mCheckBox;
} else {
if (mCheckBox == null) {
insertCheckBox();
}
compoundButton = mCheckBox;
otherCompoundButton = mRadioButton;
}
if (checkable) {
compoundButton.setChecked(mItemData.isChecked());
final int newVisibility = checkable ? VISIBLE : GONE;
if (compoundButton.getVisibility() != newVisibility) {
compoundButton.setVisibility(newVisibility);
}
// Make sure the other compound button isn't visible
if (otherCompoundButton != null && otherCompoundButton.getVisibility() != GONE) {
otherCompoundButton.setVisibility(GONE);
}
} else {
if (mCheckBox != null) mCheckBox.setVisibility(GONE);
if (mRadioButton != null) mRadioButton.setVisibility(GONE);
}
|
public void | setChecked(boolean checked)
CompoundButton compoundButton;
if (mItemData.isExclusiveCheckable()) {
if (mRadioButton == null) {
insertRadioButton();
}
compoundButton = mRadioButton;
} else {
if (mCheckBox == null) {
insertCheckBox();
}
compoundButton = mCheckBox;
}
compoundButton.setChecked(checked);
|
public void | setForceShowIcon(boolean forceShow)
mPreserveIconSpacing = mForceShowIcon = forceShow;
|
public void | setIcon(android.graphics.drawable.Drawable icon)
final boolean showIcon = mItemData.shouldShowIcon() || mForceShowIcon;
if (!showIcon && !mPreserveIconSpacing) {
return;
}
if (mIconView == null && icon == null && !mPreserveIconSpacing) {
return;
}
if (mIconView == null) {
insertIconView();
}
if (icon != null || mPreserveIconSpacing) {
mIconView.setImageDrawable(showIcon ? icon : null);
if (mIconView.getVisibility() != VISIBLE) {
mIconView.setVisibility(VISIBLE);
}
} else {
mIconView.setVisibility(GONE);
}
|
public void | setShortcut(boolean showShortcut, char shortcutKey)
final int newVisibility = (showShortcut && mItemData.shouldShowShortcut())
? VISIBLE : GONE;
if (newVisibility == VISIBLE) {
mShortcutView.setText(mItemData.getShortcutLabel());
}
if (mShortcutView.getVisibility() != newVisibility) {
mShortcutView.setVisibility(newVisibility);
}
|
public void | setTitle(java.lang.CharSequence title)
if (title != null) {
mTitleView.setText(title);
if (mTitleView.getVisibility() != VISIBLE) mTitleView.setVisibility(VISIBLE);
} else {
if (mTitleView.getVisibility() != GONE) mTitleView.setVisibility(GONE);
}
|
public boolean | showsIcon()
return mForceShowIcon;
|