드래그 앤 드롭에서 DB에서 가져온 값을 listview에 불러와서 값하나에 터치 했을시  롱 클릭값을 먼저 먹게 하는 방법이 있나요?\드래그 앤 드롭은 되는데 스크롤바가 터치 이벤트 때문에 안먹혀서 제일 밑으로 내려 갈 수가 없네요.

listveiw값들이  롱 클릭했을시에만  드래그 앤 드롭 할때이동 시키고 싶은데 바로 이동이 되서 질문을 드립니다.

 

import java.io.File;
import java.util.ArrayList;

import com.Daekyo.ListView.ListViewDnD.DragListener;
import com.Daekyo.ListView.ListViewDnD.DropListener;

import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.text.method .Touch;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class ListViewActivity extends ListActivity implements ListViewDnD.DragListener, ListViewDnD.DropListener{
   
 private ArrayList<String> data = new ArrayList<String>();
 private ListViewDnD lstInfoType;
 private boolean isDnd = false;
 private ArrayAdapter<String> mAdapter;
 ImageView imageView;
 View footer;
 
 SQLiteDatabase mDb; 
 TextView mText;

 File extSt = Environment.getExternalStorageDirectory();
 final String SDPATH = extSt.getAbsolutePath();
 
 String mDBFilePath = SDPATH + "/DaekyoMOSDB.db";
 private Button saveStart, exitStart;
 
 public ListViewActivity(){
  super();
  mDb = SQLiteDatabase.openDatabase(mDBFilePath, null, SQLiteDatabase.CREATE_IF_NECESSARY); 
  Cursor cursor = null;   
  cursor = mDb.rawQuery("SELECT NAME1, STRAS FROM Table", null); 
  int i=1;
  while (cursor.moveToNext()) {
   String NAME1 = cursor.getString(0);
   String STRAS = cursor.getString(1);
   String Result = (NAME1 + "  " + STRAS + "\n");
   data.add(i+"번째  "+Result);
   Log.i("test", Result);
   i++;
   }
  cursor.close();
  mDb.close();  // DB 끄기
  }
 
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        saveStart = (Button)findViewById(R.id.save);
        exitStart = (Button)findViewById(R.id.exit); 

 

   //     d = (Button)findViewById(R.id.d);
       
        saveStart.setOnClickListener(mClickListener);
        exitStart.setOnClickListener(mClickListener);
       
        lstInfoType = (ListViewDnD)this.findViewById(android.R.id.list);
        lstInfoType.setHorizontalScrollBarEnabled(true);
     lstInfoType.setVerticalScrollBarEnabled(true);
    
        mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
        setListAdapter(mAdapter);
       
        lstInfoType.setOnLongClickListener(new OnLongClickListener(){
         @Override     
         public boolean onLongClick(View v) {
//          lstInfoType.setAdapter(mAdapter);
//          setListAdapter(mAdapter);
   
                lstInfoType.setDragListener(this);   

                lstInfoType.setDropListener(.this);

//               registerForContextMenu(getListView());
//               v.performHapticFeedback(0, View.HAPTIC_FEEDBACK_ENABLED);         
//               mAdapter.notifyDataSetChanged(); 
               
          Log.i("drag", data.toString());
          return true;       
         }
        });

       
//        lstInfoType.setDragListener(this);
//        lstInfoType.setDropListener(this);
                     
 }
 

 public void drag(int from, int to) {
  if(!isDnd){
   isDnd = true;
   Log.i("Drag and Drop : drag", "from : " + from + ", to : " + to);
  }
 }

 public void drop(int from, int to) {
  if(isDnd){
   Log.i("Drag and Drop : drop", "from : " + from + ", to : " + to);
   if(from == to)
    return;
   
   String item = data.remove(from);
   data.add(to, item);
   
   isDnd = false;
   mAdapter.notifyDataSetChanged();
  }
 }
 
  private OnClickListener mClickListener = new OnClickListener(){
    public void onClick(View view){
     if(view == saveStart){
       Toast.makeText(ListViewActivity.this, "노선변경이 저장 되었습니다.", Toast.LENGTH_SHORT).show();
      }else if(view == exitStart){
//       finish();
       System.exit(0);
      } 
    }
   };
}