После того, как текстовое представление было перенесено на новое место, оно не копирует содержимое текстового представления. - PullRequest
0 голосов
/ 15 сентября 2018

Я хочу сделать действие, в котором я могу перетащить textView внутри пустого textView, и это должно скопировать весь контент внутри пустого textView.Каждый раз, когда я перетаскиваю текстовое представление, оно не заменит существующее текстовое представление.Я пытаюсь перетащить texview в пустое texview, чтобы оно заменяло все, что было пропущено в указанной области.Ниже приведен пример кода:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
import android.content.ClipData;
import android.view.DragEvent;
import android.view.MotionEvent;

import android.view.View.DragShadowBuilder;
import android.view.View.OnDragListener;
import android.view.View.OnLongClickListener;
import android.view.View.OnTouchListener;



public class thirdquiz2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_thirdquiz2);

        TextView textView16 = findViewById(R.id.textView16);
        TextView textView18 = findViewById(R.id.textView18);
        TextView textView17 = findViewById(R.id.textView17);
        textView17.setText("<head>");
        TextView textView19 = findViewById(R.id.textView19);
        textView19.setText("</html>");
        TextView textView23 = findViewById(R.id.textView23);
        textView23.setText("<tags>");
        TextView textView24 = findViewById(R.id.textView24);
        textView24.setText("<html>");
        TextView textView21 = findViewById(R.id.textView21);
        textView21.setText("</head>");

        textView21 = (TextView)findViewById(R.id.textView21);
        textView23 = (TextView)findViewById(R.id.textView23);
        textView24 = (TextView)findViewById(R.id.textView24);

        textView16 = (TextView)findViewById(R.id.textView16);
        textView18 = (TextView)findViewById(R.id.textView18);

        textView21.setOnTouchListener(new ChoiceTouchListener());
        textView23.setOnTouchListener(new ChoiceTouchListener());
        textView24.setOnTouchListener(new ChoiceTouchListener());

        textView16.setOnDragListener(new ChoiceDragListener());
        textView18.setOnDragListener(new ChoiceDragListener());

    }

    private final class ChoiceTouchListener implements OnTouchListener {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                ClipData Data = ClipData.newPlainText("", "");
                DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
                view.startDrag(Data, shadowBuilder, view, 0);
                return true;
            } else {
                return false;
            }
        }
    }

    private class ChoiceDragListener implements OnDragListener {
        @Override
        public boolean onDrag(View v, DragEvent event) {
            switch (event.getAction()) {
                case DragEvent.ACTION_DRAG_STARTED:
                     break;
                case DragEvent.ACTION_DRAG_ENTERED:
                     break;
                case DragEvent.ACTION_DRAG_EXITED:
                     break;
                case DragEvent.ACTION_DROP:

                    TextView textDropped = (TextView) event.getLocalState();
                    textDropped.setVisibility(View.VISIBLE);
                    View view = (View) event.getLocalState();
                    TextView dropTarget = (TextView) v;

                    TextView dropped = (TextView) view;

                    if(dropTarget.getText().toString().charAt(0) == dropped.getText().toString().charAt(0))
                    { 
                        view.setVisibility(View.VISIBLE);
                        dropTarget.setText(dropTarget.getText().toString() + dropped.getText().toString());

                        Object tag = dropTarget.getTag();
                        dropTarget.setText(dropped.getText());
                                    if(tag!=null)
                        { 
                            int existingID = (Integer)tag;
                             findViewById(existingID).setVisibility(View.INVISIBLE);
                        }
                        dropTarget.setTag(dropped.getId());
                        dropTarget.setOnDragListener(null);
                    }
                    else

                       break;

                case DragEvent.ACTION_DRAG_ENDED:

                    break;
                default:
                    break;
            }
            return true;
        }
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...