Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将OnTouchListener设置为字符串_Android_Ontouchlistener - Fatal编程技术网

Android 如何将OnTouchListener设置为字符串

Android 如何将OnTouchListener设置为字符串,android,ontouchlistener,Android,Ontouchlistener,我想突出显示文本,然后将其拖放到特定区域。我知道基本拖放的工作原理,以及如何将选定区域设置为字符串 但是我不知道如何在字符串上附加setOnClickListener?有人知道这是一个完全错误的方法吗 字符串位于编辑视图中 et =(EditText)findViewById(R.id.et); int startSelection=et.getSelectionStart(); int endSelection=et.getSelectionEnd();

我想突出显示文本,然后将其拖放到特定区域。我知道基本拖放的工作原理,以及如何将选定区域设置为
字符串

但是我不知道如何在
字符串
上附加
setOnClickListener
?有人知道这是一个完全错误的方法吗

字符串
位于
编辑视图中

 et    =(EditText)findViewById(R.id.et);
        int startSelection=et.getSelectionStart();
       int endSelection=et.getSelectionEnd();

       test = et.getText().toString().substring(startSelection, endSelection);

正如评论者所指出的,您不能在
字符串上设置触摸式侦听器,您必须在
编辑文本上设置。您可以这样做:

et.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            et.setFocusable(true);
            et.requestFocus();
            // Do what you want 

            break;
        case MotionEvent.ACTION_UP:
            // Do what you want 
            break;
        default:
            break;
        }
        return true;
    }
});

但是,我仍然不明白为什么你想使用一个
OnTouchListener
而不是一个
OnDragListener
,这似乎更符合你的目的

你的绳子在哪里?在文本视图上?我不认为有任何方法可以在android中显示字符串而不使用任何视图。你说的字符串是什么意思?你是指文本视图?该字符串位于editTextadd TextWachter中,或单击Listener使用ondraglistener编辑文本有效点。问题是,我只想拖动选中/突出显示的文本(即“测试”),而不是整个文本。