實(shí)現(xiàn)效果
創(chuàng)新互聯(lián)公司專注于海州企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站制作。海州網(wǎng)站建設(shè)公司,為海州等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)使用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);
//在上下文菜單選項(xiàng)中添加選項(xiàng)內(nèi)容
//add方法的參數(shù):add(分組id,itemid, 排序, 菜單文字)
menu.add(0, 0, 0, "復(fù)制電話號碼");
}
(3)點(diǎn)擊事件響應(yīng)
@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實(shí)現(xiàn)
(1)OnLongClickListener事件響應(yīng)
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);// 點(diǎn)擊空白處時(shí),隱藏掉pop窗口
PopupmenuCopy.setOutsideTouchable(true);
mPopUpBtn = (TextView) layoutView.findViewById(R.id.popbtn);
// 幫助頁面按鈕事件響應(yīng)
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實(shí)現(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;
}
}
});
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前文章:TextView長按復(fù)制實(shí)現(xiàn)方法3種方法實(shí)踐總結(jié)-創(chuàng)新互聯(lián)
標(biāo)題URL:http://www.chinadenli.net/article40/dhioho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)