實現(xiàn)效果
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比湞江網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式湞江網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋湞江地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
使用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);
//在上下文菜單選項中添加選項內(nèi)容
//add方法的參數(shù):add(分組id,itemid, 排序, 菜單文字)
menu.add(0, 0, 0, "復(fù)制電話號碼");
}
(3)點擊事件響應(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實現(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);// 點擊空白處時,隱藏掉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布局文件
android:id="@+id/popLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@color/transparent" > 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" />
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;
}
}
});