安卓長按交互onCreateContextMenu的簡單 用法


1.可在activity和fragment中使用。

2.使用方法

(1)注冊

registerForContextMenu(btn);//btn是要實現交互的控件

(2)重寫onCreateContextMenu方法和onContextItemSelected方法(有兩種方式先講第一種)

@Override

    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

        super.onCreateContextMenu(menu, v, menuInfo);

        getMenuInflater().inflate(R.menu.menu,menu);

        //給menu設置布局文件,當觸發時顯示在界面上
    }
@Override

    public boolean onContextItemSelected(MenuItem item) {

        //布局文件里面對應的id,當點擊時,根據id區別那個被點擊

        switch(item.getItemId()){

            caseR.id.text1:

                Log.i("leilei","text1");

                break;

            caseR.id.text2:

                Log.i("leilei","text2");

                break;

            caseR.id.text3:

                Log.i("leilei","text3");

                break;
        }
        returnsuper.onOptionsItemSelected(item);
    }

(3)觸發條件(1 調用方法 view.showContextMenu(),2 長按(可以和長按事件setOnLongClickListener同時觸發)。

//調用方法方式

btn.setOnClickListener(newView.OnClickListener() {

            @Override

            public void onClick(View v) {

                v.showContextMenu();//單擊直接顯示Context菜單

            }

        });

在講講第二種方式(ContextMenu 方法)

@Override
    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
        // TODOAuto-generated method stub
        menu.setHeaderIcon(R.drawable.tp_3);
        menu.setHeaderTitle(R.string.menuHeader01);
        menu.add(20, 20, 20, R.string.conTextMenu01);
        menu.add(20, 21, 21, R.string.conTextMenu02);
        super.onCreateContextMenu(menu, v, menuInfo);
    }
 @Override
    public boolean onContextItemSelected(MenuItem item){
        String str = "";
        switch(item.getItemId()){
        case 20:
            str = "20";
            break;
        case 21:
            str = "21";
            break;
        }
        Toast.makeText(getApplicationContext(),str, Toast.LENGTH_LONG).show();
        return true;
    }

這種是用原生的進行菜單填充

 menu.add(20, 20, 20, R.string.conTextMenu01);

 參數1:小組的標記;

參數2:給他設置一個ID ;

參數3:怎么顯示位置(0,1);

參數4:文字的顯示
 (4)總結

1.registerForContextMenu方法:用於為一個View對象注冊上下文菜單,其輸入為View對象

2.onCreateContextMenu方法:初始化上下文菜單,在需要相應上下文菜單時調用

3.onContextItemSelected方法:設置上下文中某個菜單被選中時的操作

4.onContextMenuClosed方法:用於設置當前上下文菜單被關閉時的操作,其輸入為menu對象

 

by:leileitua


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM