android 長按快顯功能表,複製,粘貼,全選,android全選

來源:互聯網
上載者:User

android 長按快顯功能表,複製,粘貼,全選,android全選

<!-- 定義基礎布局LinearLayout --><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:orientation="vertical">    <!-- 定義TextView控制項 -->    <EditText        android:id="@+id/Et"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="長按彈出內容菜單"        /></LinearLayout>
package com.example.yanlei.yl2;import android.content.ClipData;import android.content.ClipboardManager;import android.content.Context;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.EditText;import android.widget.Toast;//匯入必備的包public class MainActivity extends AppCompatActivity {    //定義ContextMenu中每個菜單選項的Id    final int Menu_1 = Menu.FIRST;    final int Menu_2 = Menu.FIRST + 1;    final int Menu_3 = Menu.FIRST + 2;    EditText Et;    private ClipboardManager mClipboard = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState); // 調用父類的onCreate方法        // 通過setContentView方法設定當前頁面的布局檔案為activity_main        setContentView(R.layout.activity_main);        //獲得布局中的控制項        Et = (EditText)findViewById(R.id.Et);        //給EditText註冊操作功能表        registerForContextMenu(Et);    }    //建立ContextMenu菜單的回調方法    public void onCreateContextMenu(ContextMenu m, View v,                                    ContextMenuInfo menuInfo) {        super.onCreateContextMenu(m,v,menuInfo);        //在操作功能表選項中添加選項內容        //add方法的參數:add(分組id,itemid, 排序, 菜單文字)        m.add(0, Menu_1, 0, "複製文字");        m.add(0, Menu_2, 0, "粘貼文字");        m.add(0, Menu_3, 0, "全選文字");    }    private void copyFromEditText1() {        // Gets a handle to the clipboard service.        if (null == mClipboard) {            mClipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);        }        // Creates a new text clip to put on the clipboard        ClipData clip = ClipData.newPlainText("simple text",Et.getText());        // Set the clipboard's primary clip.        mClipboard.setPrimaryClip(clip);    }    private void pasteToResult() {        // Gets a handle to the clipboard service.        if (null == mClipboard) {            mClipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);        }        String resultString = "";        // 檢查剪貼簿是否有內容        if (!mClipboard.hasPrimaryClip()) {            Toast.makeText(MainActivity.this,                    "Clipboard is empty", Toast.LENGTH_SHORT).show();        }        else {            ClipData clipData = mClipboard.getPrimaryClip();            int count = clipData.getItemCount();            for (int i = 0; i < count; ++i) {                ClipData.Item item = clipData.getItemAt(i);                CharSequence str = item                        .coerceToText(MainActivity.this);                Log.i("mengdd", "item : " + i + ": " + str);                resultString += str;            }        }        Toast.makeText(this, resultString, Toast.LENGTH_SHORT).show();        Et.setText(resultString);    }    //ContextMenu菜單選項的選項選擇的回調事件    public boolean onContextItemSelected(MenuItem item) {        //參數為使用者選擇的菜單選項對象        //根據菜單選項的id來執行相應的功能        switch (item.getItemId()) {            case 1:                Toast.makeText(this, "複製文字", Toast.LENGTH_SHORT).show();                copyFromEditText1();                break;            case 2:                Toast.makeText(this, "粘貼文字", Toast.LENGTH_SHORT).show();                pasteToResult();                break;            case 3:                Toast.makeText(this, "全選文字", Toast.LENGTH_SHORT).show();                Et.selectAll();                break;        }        return super.onOptionsItemSelected(item);    }}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.