使用代码android在文本上显示复制/粘贴上下文菜单

我有一个EditText,它的文本通过代码选择.但我想允许用户剪切/复制所选文本.但是,在用户长按文本之前,不会显示剪切/复制上下文菜单.但它失去了实际的选择.所以,我正在考虑显示上下文菜单,因为代码选择了文本.

我在onFocusChanged中尝试了这个,但没有出现.

openContextMenu(EditText);
最佳答案
如果我正确地使用了usecase,您可以从在measuredEditText上注册的onFocuschangelistener打开上下文菜单.

我准备了一些小测试,似乎正确支持你的用例.
您需要在正在选择EditText中的内容的钩子上打开菜单.

public class Main extends Activity {

private EditText testedEditText;
private Button selectingButton;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    selectingButton = (Button) findViewById(R.id.button);
    testedEditText = (EditText) findViewById(R.id.textView);
    registerForContextMenu(testedEditText);

    selectingButton.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            testedEditText.setSelection(6,11);
            openContextMenu(testedEditText);
        }
    });
}

@Override
public void onCreateContextMenu(ContextMenu menu,View v,ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu,v,menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.cmenu,menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.select_all:

            return true;
        case R.id.copy:
            //do something
            return true;
        case R.id.cut:
            //do something
            return true;

        case R.id.paste:
            //do something
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}

}

非常奇怪地注册了testsEditText.requestFocus(),并且为EditText设置onFocusChangedListener是不够的.

其他xml文件供参考:
cmenu.xml

copy"
      android:title="copy"
      />

main.xml中

ottom="true"
        android:layout_centerHorizontal="true"
        android:text="button"
        />

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...