當前位置:首頁 » 安卓系統 » androidmenuitem

androidmenuitem

發布時間: 2022-11-13 20:20:27

㈠ Android NavigationView 裡面的menu的item怎麼設置點擊效

NavigationView view = (NavigationView) findViewById(R.id.navigation_view);
view.(new NavigationView.() {
@Override public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
return true;
}
});

㈡ android menu 怎麼得到item

android 中的menu一般是指上下文菜單或者是選項菜單

其中上選項菜單是可以在布局中res下的menu中在xml布局中寫好布局來的然後通過java代碼中的onCreateOptionsMenu來載入選項菜單,android4.4高級版本後是自動把菜單載入到標題欄上的,而不是低版本的按下menu鍵才顯是出來的,上下文菜單是是通過onCreateContextMenu這個方法來注冊上下文菜單的

下面講講如何獲取menu中的item

獲取上下文菜單的item其實就是當單機選項菜單時會觸發這個方法

(MenuItemmi){
//判斷單擊的是哪個菜單項,並針對性的作出響應。
switch(mi.getItemId()){
caseFONT_RED:
title.setTextColor(Color.RED);
break;
caseFONT_GREEN:
title.setTextColor(Color.GREEN);
break;
caseFONT_BLUE:
title.setTextColor(Color.BLUE);
break;
caseMENU1:
createdialog();
break;
}
returntrue;
}

獲取選項菜單的item其實就是當單擊選項菜單時會觸發這個方法

(intfeatureId,MenuItemitem){
//利用switch根據ItemId區分點擊的是哪個菜單以便正確響應用戶操作
MenuItemtemp=item;
switch(item.getItemId()){
caseR.id.rename:
createdialog();
break;
caseR.id.red:
title.setTextColor(Color.RED);
break;
caseR.id.green:
title.setTextColor(Color.GREEN);
break;
caseR.id.blue:
title.setTextColor(Color.BLUE);
break;
// caseR.id.choose_color:
// createpopupmenu(temp);
// break;
}
returnsuper.onMenuItemSelected(featureId,item);
}

㈢ Android 中MenuItem 怎麼傳遞參數

應該是可以識別的吧,你定義的result是個成員變數來的,內部類是可以訪問外部類的成員變數的啊,除非你的內部類是在一個方法里,而要訪問的變數是方法的局部變數。
如果是這樣,內部類是只能訪問方法中的final變數的,因為如果這個方法棧結束了,result這個變數肯定會消失,可是內部類
還可能存在在堆中,因為可能沒那麼快被回收,這個時候,也就是說它有可能會去訪問一個變數result,可是這個變數result卻是早已經被清除了的,這是肯定不行的。 所以,要麼把result定義成final的。

㈣ 怎樣在Android Menu item中使用自定義View

1.自定義屬性:attrs.xml

2.MenuItemView.java源碼

package com.dandy.widget;

import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.StateListDrawable;
import android.graphics.drawable.shapes.RectShape;
import android.os.Build;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;

import com.lingyun.switchbutton.R;

/**
* 設置,菜單中的布局項
* 默認控制項是縱向居中顯示,所有paddingTop和paddingBottom在這沒有作用
* Created by dandy on 2016/4/14.
*/
public class MenuItemView extends View{

private static final String TAG = "MenuItemView";

/**默認是按下狀態的最小值**/
private static final long PRESSED_TIMEOUT = 10;

/**默認控制項距離邊界的大小**/
private static final int PADDING_DEFAULT = 18;

/**默認控制項的高**/
private static final int HEIGHT_DEFAULT = 50;

/**文字繪制時默認大小**/
private static final int TEXTSZIE_DEFAULT = 14;

/**尾部箭頭圖標大小**/
private static final int ARROW_SIZE = 13;

/***SwitchButton默認寬*/
private static final int SWITCHBUTTON_WIDTH = 50;

/***SwitchButton默認高*/
private static final int SWITCHBUTTON_HEIGHT = 28;

/**頭標**/
private Drawable headerDrawable;

/**頭標寬**/
private int headerDrawableWidth;
/**頭標高**/
private int headerDrawableHeight;

/**距離左邊緣的距離**/
private int paddingLeft;

/**距離右邊緣的距離**/
private int paddingRight;

/**繪制頭標時,畫布在Y軸的繪制偏移量**/
private float headerDrawableStartDrawY;

/**文字與圖片間的距離**/
private int drawablePadding = -1;

/**頭部文字提示**/
private String textHeader;

/**文字顏色**/
private int textHeaderColor = Color.parseColor("#5a5a5a");

/**文字大小**/
private int textSize = -1;

/**文字繪制時,畫布在Y軸的繪制偏移量**/
private float textStartDrawY;

/**繪制文字的畫筆**/
private Paint textPaint;

/** 尾部 > 圖片**/
private Drawable arrowDrawable;
/**尾部 > 大小**/
private int arrowSize = -1;

/** > 繪制的X軸偏移量**/
private float arrowStartDrawX;

/** > 繪制的Y軸偏移量**/
private float arrowStartDrawY;

/**footerDrawable != null 時,繪制的時候是否按照原圖片大小繪制**/
private boolean arrowWropToSelf = true;

/**尾部寬**/
private int arrowDrawableWidth;
/**尾部高**/
private int arrowDrawableHeight;

/**繪制arrow畫筆**/
private Paint arrowPaint;

/**arrowPaint 顏色**/
private int arrowColor = Color.parseColor("#5a5a5a");

private DisplayMetrics dm;

/*以下是繪制SwitchButton所用到的參數*/

private Style style = Style.CUSTOM_ITEM;

/**默認寬**/
private int switchButtonWidth = -1;

/**默認高**/
private int switchButtonHeight = -1;

private static final long DELAYDURATION = 10;

/**開啟顏色**/
private int onColor = Color.parseColor("#4ebb7f");
/**關閉顏色**/
private int offColor = Color.parseColor("#dadbda");
/**灰色帶顏色**/
private int areaColor = Color.parseColor("#dadbda");
/**手柄顏色**/
private int handlerColor = Color.parseColor("#ffffff");
/**邊框顏色**/
private int borderColor = offColor;
/**開關狀態**/
private boolean toggleOn = false;
/**邊框寬**/
private int borderWidth = 2;
/**縱軸中心**/
private float centerY;
/**按鈕水平方向開始、結束的位置**/
private float startX,endX;
/**手柄x軸方向最小、最大值**/
private float handlerMinX,handlerMaxX;
/**手柄大小**/
private int handlerSize;
/**手柄在x軸的坐標位置**/
private float handlerX;
/**關閉時內部灰色帶寬度**/
private float areaWidth;
/**是否使用動畫效果**/
private boolean animate = true;
/**是否默認處於打開狀態**/
private boolean defaultOn = true;
/**按鈕半徑**/
private float radius;

/**整個switchButton的區域**/
private RectF switchRectF = new RectF();

/**繪制switchButton的畫筆**/
private Paint switchPaint;

private OnToggleChangedListener mListener;

private Handler mHandler = new Handler();

private double currentDelay;

private float downX = 0;

/**switchButton在X軸繪制的偏移量**/
private float switchButtonDrawStartX;

/**switchButton在Y軸繪制的偏移量**/
private float switchButtonDrawStartY;

/**分割線,默認在底部繪制**/
private Drawable dividerr;

/**分割線繪制的寬**/
private int dividerWidth = 2;

/**是否需要繪制分割線**/
private boolean dividerVisibilty = true;

/**觸摸事件是否完成**/
private boolean touchDownEnd = false;

public MenuItemView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setup(attrs);
}
public MenuItemView(Context context, AttributeSet attrs) {
super(context, attrs);
setup(attrs);
}

/**
* 初始化控制項,獲取相關的控制項屬性
* @param attrs
*/
private void setup(AttributeSet attrs){

dm = Resources.getSystem().getDisplayMetrics();

TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.MenuItemView);
if(typedArray != null){
int count = typedArray.getIndexCount();
for(int i = 0;i < count;i++){
int attr = typedArray.getIndex(i);
switch (attr){
case R.styleable.MenuItemView_headerDrawable:
headerDrawable = typedArray.getDrawable(attr);
break;
case R.styleable.MenuItemView_drawPadding:
drawablePadding = typedArray.getDimensionPixelSize(attr,drawablePadding);
break;
case R.styleable.MenuItemView_textHeader:
textHeader = typedArray.getString(attr);
break;
case R.styleable.MenuItemView_textHeaderColor:
textHeaderColor = typedArray.getColor(attr, textHeaderColor);
break;
case R.styleable.MenuItemView_textSize:
textSize = typedArray.getDimensionPixelSize(attr, textSize);
break;
case R.styleable.MenuItemView_arrowDrawable:
arrowDrawable = typedArray.getDrawable(attr);
break;
case R.styleable.MenuItemView_arrowSize:
arrowSize = typedArray.getDimensionPixelSize(attr, arrowSize);
break;
case R.styleable.MenuItemView_arrowWropToSelf:
arrowWropToSelf = typedArray.getBoolean(attr, true);
break;
case R.styleable.MenuItemView_arrowColor:
arrowColor = typedArray.getColor(attr, arrowColor);
break;
case R.styleable.MenuItemView_onColor:
onColor = typedArray.getColor(attr, onColor);
break;
case R.styleable.MenuItemView_offColor:
borderColor = offColor = typedArray.getColor(attr,offColor);
break;
case R.styleable.MenuItemView_areaColor:
areaColor = typedArray.getColor(attr, areaColor);
break;
case R.styleable.MenuItemView_handlerColor:
handlerColor = typedArray.getColor(attr, handlerColor);
break;
case R.styleable.MenuItemView_bordeWidth:
borderWidth = typedArray.getColor(attr, borderWidth);
break;
case R.styleable.MenuItemView_animate:
animate = typedArray.getBoolean(attr, animate);
break;
case R.styleable.MenuItemView_defaultOn:
defaultOn = typedArray.getBoolean(attr, defaultOn);
break;
case R.styleable.MenuItemView_Style:
style = Style.getValue(typedArray.getInt(attr, Style.CUSTOM_ITEM.ordinal()));
break;
case R.styleable.MenuItemView_switchButtonWidth:
switchButtonWidth = typedArray.getDimensionPixelOffset(attr, switchButtonWidth);
break;
case R.styleable.MenuItemView_switchButtonHeight:
switchButtonHeight = typedArray.getDimensionPixelOffset(attr, switchButtonHeight);
break;
case R.styleable.MenuItemView_dividerr:
dividerr = typedArray.getDrawable(attr);
break;
case R.styleable.MenuItemView_dividerWidth:
dividerWidth = typedArray.getDimensionPixelOffset(attr,dividerWidth);
break;
case R.styleable.MenuItemView_dividerVisibilty:
dividerVisibilty = typedArray.getBoolean(attr,dividerVisibilty);
break;
}
}
typedArray.recycle();
}

㈤ Android NavigationView 裡面的menu的item怎麼設置點擊效

navigationView.(newNavigationView.(){
@Override
(@NonNullMenuItemmenuItem){
switch(menuItem.getItemId())
{
caseR.id.grade:
Toast.makeText(getApplicationContext(),"你點擊了第一項",Toast.LENGTH_SHORT).show();
break;
caseR.id.navcall:
Toast.makeText(getApplicationContext(),"你點擊了第二項",Toast.LENGTH_SHORT)
.show();
break;
default:
break;
}
returntrue;
}
});

㈥ 怎樣在Android Menu item中使用自定義View

可以自定義ActionBar,然後彈窗用PopupWindow實現
關鍵api: actionBar.setCustomView(View view)

㈦ Android 怎麼實現自定義menuItem

可以在xml中自定義item項目為menu

㈧ Android 模擬器中按菜單Menu鍵彈出菜單項MenuItem,點擊菜單項中的「退出」沒反應

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
/*
*
* add()方法的四個參數,依次是:
*
* 1、組別,如果不分組的話就寫Menu.NONE,
*
* 2、Id,這個很重要,Android根據這個Id來確定不同的菜單
*
* 3、順序,那個菜單現在在前面由這個參數的大小決定
*
* 4、文本,菜單的顯示文本
*/
//圖標文件實現android系統自帶的文件
menu.add(Menu.NONE, Menu.FIRST + 1, 1, "保存").setIcon(android.R.drawable.ic_menu_save);
menu.add(Menu.NONE, Menu.FIRST + 2, 2, "添加").setIcon(android.R.drawable.ic_menu_add);
// menu.add(Menu.NONE, Menu.FIRST + 3, 3, "刪除").setIcon(android.R.drawable.ic_menu_delete);
// menu.add(Menu.NONE, Menu.FIRST + 4, 4, "發送").setIcon(android.R.drawable.ic_menu_send);
menu.add(Menu.NONE, Menu.FIRST + 5, 5, "幫助").setIcon(android.R.drawable.ic_menu_help);
menu.add(Menu.NONE, Menu.FIRST + 6, 6, "退出").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case Menu.FIRST + 1:
Toast.makeText(WqtMainActivity.this, "保存菜單被點擊了!", Toast.LENGTH_LONG).show();
//intent = new Intent(MenuActivity.this,Myhandler.class);
//startActivity(intent);
//overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
break;
case Menu.FIRST + 2:
Toast.makeText(WqtMainActivity.this, "添加菜單被點擊了!", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 3:
Toast.makeText(WqtMainActivity.this, "刪除菜單被點擊了!", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 4:
Toast.makeText(WqtMainActivity.this, "發送菜單被點擊了!", Toast.LENGTH_LONG).show();
//通知在狀態欄顯示的圖標
//notification.icon = android.R.drawable.ic_lock_silent_mode_off;
//通知的內容
//notification.tickerText = "發送菜單被點擊了!";
//通知時發出的聲音
//notification.defaults = Notification.DEFAULT_SOUND;
//intent = new Intent(MenuActivity.this,mNotification.class);
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
//pendindIntent = PendingIntent.getActivity(MenuActivity.this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
//notification.setLatestEventInfo(MenuActivity.this, "按鈕", "發送按鈕", pendindIntent);
//notificationManager.notify(913, notification);
break;
case Menu.FIRST + 5:
Toast.makeText(WqtMainActivity.this, "幫助菜單被點擊了!", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 6:
AlertDialog alertDialog = new AlertDialog.Builder(WqtMainActivity.this)
.setTitle("提示!")
.setIcon(R.drawable.ask)
.setMessage("您確定要退出系統嗎?")
.setPositiveButton("確定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.exit(0);
dialog.cancel(); //提示對話框關閉
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel(); //關閉對話框
}
}).create();
alertDialog.show();
break;
}
return super.onMenuItemSelected(featureId, item);
}

熱點內容
大數據應用技術需要什麼電腦配置 發布:2025-03-04 07:56:33 瀏覽:53
群九軸演算法 發布:2025-03-04 07:45:13 瀏覽:166
c語言企業面試題目 發布:2025-03-04 07:45:03 瀏覽:406
e付卡怎麼設置密碼 發布:2025-03-04 07:44:59 瀏覽:89
安卓在手機桌面移除app後如何恢復 發布:2025-03-04 07:26:15 瀏覽:103
開發者隱私密碼如何關閉 發布:2025-03-04 07:21:35 瀏覽:337
neta解壓 發布:2025-03-04 06:57:23 瀏覽:978
安卓啟動界面是什麼意思 發布:2025-03-04 06:31:48 瀏覽:529
安卓智能鎖屏怎麼設置時間設置 發布:2025-03-04 06:31:39 瀏覽:235
C語言程式 發布:2025-03-04 06:30:57 瀏覽:703