TextView長按復制實現(xiàn)方法3種方法實踐總結-創(chuàng)新互聯(lián)

實現(xiàn)效果

創(chuàng)新互聯(lián)公司專注于海州企業(yè)網站建設,響應式網站建設,商城網站制作。海州網站建設公司,為海州等地區(qū)提供建站服務。全流程按需求定制網站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

TextView長按復制實現(xiàn)方法 3種方法實踐總結

TextView長按復制實現(xiàn)方法 3種方法實踐總結

TextView長按復制實現(xiàn)方法 3種方法實踐總結

  1. 使用ContextMenu

    (1)注冊菜單

@Override

  public void onCreate(Bundle savedInstanceState) {

mMoblieTextView = (TextView) findViewById(R.id.mobile_textview);

//注冊上下文菜單

 registerForContextMenu(mMoblieTextView);

}

  (2)onCreateContextMenu添加菜單

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

// TODO Auto-generated method stub

super.onCreateContextMenu(menu, v, menuInfo);

//在上下文菜單選項中添加選項內容

    //add方法的參數(shù):add(分組id,itemid, 排序, 菜單文字)

menu.add(0, 0, 0, "復制電話號碼");

}

    (3)點擊事件響應

@Override

public boolean onContextItemSelected(MenuItem item) {

// TODO Auto-generated method stub

if (item.getItemId() == 0) {

if (null == clipboard) {

clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);

    }

// Creates a new text clip to put on the clipboard

    ClipData clip = ClipData.newPlainText("simple text",mMoblieTextView.getText());

    // Set the clipboard's primary clip.

    clipboard.setPrimaryClip(clip);

return true;

}

return super.onContextItemSelected(item);

}

2.使用OnLongClickListener 彈出 PopupWindow實現(xiàn)

(1)OnLongClickListener事件響應

 PopupWindow PopupmenuCopy;

 // 幫助窗口

  TextView mPopUpBtn;

@Override

  public void onCreate(Bundle savedInstanceState) {

mMoblieTextView = (TextView) findViewById(R.id.mobile_textview);

mMoblieTextView.setOnLongClickListener(new View.OnLongClickListener() {

@Override

public boolean onLongClick(View v) {

// TODO Auto-generated method stub

popupCopy();

return false;

}

});

}

(2)創(chuàng)建窗口

private void popupCopy() {

LayoutInflater layoutInflater = (LayoutInflater) mContext

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View layoutView = layoutInflater.inflate(

R.layout.popup_copy, null);

// Creating the PopupWindow

RelativeLayout popLayout = (RelativeLayout) layoutView

.findViewById(R.id.popLayout);

scaleFontSize(popLayout);

PopupmenuCopy = new PopupWindow(mContext);

PopupmenuCopy.setContentView(layoutView);

PopupmenuCopy.setWidth(LayoutParams.WRAP_CONTENT);

PopupmenuCopy.setHeight(LayoutParams.WRAP_CONTENT);

PopupmenuCopy.setBackgroundDrawable(getResources().getDrawable(

        R.drawable.left_drawer_item_bg));

PopupmenuCopy.setFocusable(true);// 點擊空白處時,隱藏掉pop窗口

PopupmenuCopy.setOutsideTouchable(true);

mPopUpBtn  = (TextView) layoutView.findViewById(R.id.popbtn);

// 幫助頁面按鈕事件響應

mPopUpBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

if (null == clipboard) {

clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);

    }

// Creates a new text clip to put on the clipboard

    ClipData clip = ClipData.newPlainText("simple text",mMoblieTextView.getText());

    clipboard.setPrimaryClip(clip);

    PopupmenuCopy.dismiss();

}

});

int[] location = new int[2];

mMoblieTextView.getLocationOnScreen(location);

PopupmenuCopy.showAtLocation(mMoblieTextView,Gravity.NO_GRAVITY, location[0],location[1]+mMoblieTextView.getHeight());

//控件上方

//PopupmenuCopy.showAtLocation(mMoblieTextView,Gravity.NO_GRAVITY, location[0], location[1]-PopupmenuCopy.getHeight());

}

 (3)popup_copy布局文件

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  android:id="@+id/popLayout"

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:background="@color/transparent"

   >

  <TextView

    android:id="@+id/popbtn"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:padding="8dp"

    android:text="@string/copy_mobileID"

    android:textSize= "@dimen/add_item_text_size"

    android:background="@drawable/btn_copy_selector"

    android:textColor="@color/black"

    android:gravity="center"

    android:layout_centerInParent="true"

    />

</RelativeLayout>

3.使用使用OnLongClickListener 彈出 QuickAction實現(xiàn)

QuickAction mQuickAction;

 mMoblieTextView.setOnLongClickListener(new View.OnLongClickListener() {

@Override

public boolean onLongClick(View v) {

// TODO Auto-generated method stub

mQuickAction.show(v);

return false;

}

});

 ActionItem copyItem =    new ActionItem(0, getString(R.string.copy_mobileID));

     mQuickAction = new QuickAction(mContext);

     mQuickAction.addActionItem(copyItem);

    //setup the action item click listener

   mQuickAction.setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() {

   @Override

   public void onItemClick(QuickAction quickAction, int pos, int actionId) {

       switch (actionId) {

      case 0:

       if (null == clipboard) {

   clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);

       }

       ClipData clip = ClipData.newPlainText("simple text",mMoblieTextView.getText());

  

       clipboard.setPrimaryClip(clip);

         break;

        default:

          break;

       }  

   }

   });

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前文章:TextView長按復制實現(xiàn)方法3種方法實踐總結-創(chuàng)新互聯(lián)
標題URL:http://muchs.cn/article40/dhioho.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、搜索引擎優(yōu)化網站設計、網頁設計公司、網站設計公司、網站改版

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司