I applied the drag and drop function in my application. I have four text fields and I drag them. But I want to know which text has been fined and discarded? I want to know which textview is the deletion target, and the textview is being dragged by name, as indicated in my code.
Below is the code for this.
code to initialize views
public void initView() { p_one = (TextView) findViewById(R.id.tgoal_tvone); p_two = (TextView) findViewById(R.id.tgoal_tvtwo); p_three = (TextView) findViewById(R.id.tgoal_tvthree); p_four = (TextView) findViewById(R.id.tgoal_tvfour); query = (ImageView) findViewById(R.id.tgoal_img_query); tv_contentOne=(TextView)findViewById(R.id.tgoal_tvoneContent); tv_contentTwo=(TextView)findViewById(R.id.tgoal_tvtwoContent); tv_contentThree=(TextView)findViewById(R.id.tgoal_tvthreeContent); tvContentFour=(TextView)findViewById(R.id.tgoal_tvfourContent); query.setOnClickListener(this); //set touch listeners tv_contentOne.setOnTouchListener(new ChoiceTouchListener()); tv_contentTwo.setOnTouchListener(new ChoiceTouchListener()); tv_contentThree.setOnTouchListener(new ChoiceTouchListener()); tvContentFour.setOnTouchListener(new ChoiceTouchListener()); //set drag listeners tv_contentOne.setOnDragListener(new ChoiceDragListener()); tv_contentTwo.setOnDragListener(new ChoiceDragListener()); tv_contentThree.setOnDragListener(new ChoiceDragListener()); tvContentFour.setOnDragListener(new ChoiceDragListener()); /**set up the action bar**/ ActionBar bar = getActionBar(); bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0099CC"))); bar.setTitle(getResources().getString(R.string.tgoal_header)); bar.setDisplayHomeAsUpEnabled(true); bar.setHomeButtonEnabled(true); }
code to get a dropdown list
class ChoiceDragListener implements OnDragListener { int count=0; @Override public boolean onDrag(View v, DragEvent event) { // TODO Auto-generated method stub View dragView = (View) event.getLocalState(); switch (event.getAction()) { case DragEvent.ACTION_DRAG_STARTED: //no action necessary break; case DragEvent.ACTION_DRAG_ENTERED: //no action necessary break; case DragEvent.ACTION_DRAG_EXITED: //no action necessary break; case DragEvent.ACTION_DROP: //handle the dragged view being dropped over a drop view //handle the dragged view being dropped over a target view View view = (View) event.getLocalState(); //stop displaying the view where it was before it was dragged //view dragged item is being dropped on TextView dropTarget = (TextView) v; //view being dragged and dropped TextView dropped = (TextView) view; String droppedTarget=dropTarget.getText().toString(); dropTarget.setText(dropped.getText()); dropped.setText(droppedTarget); //make it bold to highlight the fact that an item has been dropped dropTarget.setTypeface(Typeface.DEFAULT_BOLD); dropTarget.setBackgroundColor(getResources().getColor(R.color.papya_orange)); Log.i("log", "TV Dropped"); if(dropTarget==p_one) { Log.i("log", "Drop View is First TextView"); } break; case DragEvent.ACTION_DRAG_ENDED: //no action necessary break; default: break; } return true; } }
user4209438
source share